如何在SQL中添加变量
我有一个变量,需要按月显示它。这个变量是一个布尔值,如果它设置为True,这意味着该应用程序已安装。如何在SQL中添加变量
示例: 变量=龙头安装的应用程序
在一月有20个安装的应用。 二月份有10个安装的应用程序。 3月份有5个安装的应用程序。
我要显示在桌子上安装的(布尔=真)的所有应用程序:
January: 20
February: 20 (January) + 10 = 30
March: 20 (January) + 10 (February) + 5 (March) = 35
有谁知道我怎么能在MySQL做到这一点?
感谢
我知道了!我用递归
SELECT (select id_time from database.dim_time where id_time = a.fk_time) AS yearmonth, (select sum(if(installed in (1), 1,0)) as installed from database.facts_table where fk_time <= yearmonth) as installed FROM database.facts_table AS a GROUP BY yearmonth ORDER BY yearmonth ASC
如果我理解正确的,它只是通过一个命令一个简单的查询。
select COLUMNS_YOU_WANT from TABLE_NAME
where YOUR_BOOLEAN == True
order by SOME_DATE_COLUMN
希望你已经足够精通SQL,用你所需要的部分替换这些部分。
这不是关于排序行。我想要安装一些aps。就像安装的发展一样。 – user2137198 2013-03-05 19:34:56
好的,这在第一篇文章中根本就不清楚。只需获得每月的总和,然后在PHP/Python端添加。你是手动还是编程查询数据库?不要让SQL做比它需要的更多的事情。 PHP/Python中的滚动操作非常简单。 – JustinDanielson 2013-03-05 19:37:23
您可以使用子查询按月分组安装。然后,你可以在我们的外部查询一个变量来计算累积总和:
select installation_year
, installation_month
, installation_count
, (@running_sum:= @running_sum + installation_count) as cumulative_sum
from (
select year(installation_date) as installation_year
, month(installation_date) as installation_month
, count(*) as installation_count
from YourTable
group by
installation_year
, installation_month
) as SubQueryAlias
join (select @running_sum := 0) as InitVars
order by
installation_year
, installation_month
我假设你有一个包含“已安装”栏和“一个“应用程序”表InstalledDate“列。如果是这样的......
SELECT Count(*)
FROM Applications
WHERE Installed = 1 -- Assumes a bit/boolean column.
AND InstalledDate BETWEEN @StartDate AND @EndDate;
斯科特
我懂了!我用递归: – user2137198 2013-03-08 20:26:06
SELECT AS yearmonth, (SELECT SUM(如果(安装在(从database.dim_time其中id_time = a.fk_time选择id_time)(1),1,0)),如从数据库安装 .facts_table 其中fk_time user2137198 2013-03-08 20:34:42
类似:
Select COUNT(*),Month
From Apps
where installed = true
group by Month
这会如何将一月份的安装次数与二月份的安装次数相加? – Andomar 2013-03-05 19:38:49
只要做到这一点,然后总结出你想用任何语言来查询数据库的特定范围。 – JustinDanielson 2013-03-05 19:39:00
显示你的努力,请张贴你试过的一些sql。 – 2013-03-05 19:29:00
请提供一些继续。像表结构和任何你尝试过的SQL。 – Randy 2013-03-05 19:33:03