我不是一个强大的数据库人,但我对它有中级知识。这是我面临的挑战,我有一张像 -
这样的表pin type day month year timestamp value
---- ----- --- --- --- -------- -----
123 clicks 02 12 2014 unixtime 3
123 clicks 03 12 2014 unixtime 7
111 clicks 02 12 2014 unixtime 10
我想要一个mysql查询,它会选择pin=$pin and month=$month
的所有行,并返回总计数为value
的所有列
对于上面的示例数据集,id喜欢得到类似
的内容pin type month year timestamp value
---- ----- --- --- --- -------- -----
123 clicks 12 2014 unixtime 10
任何帮助都将不胜感激。
答案 0 :(得分:2)
您需要使用GROUP BY,SUM()和COUNT()
SELECT COUNT(month) as month, SUM(value) AS value
FROM TABLE_NAME
WHERE pin = '$pin'
AND month='$month' // Added $month in condition
GROUP BY pin, month, year // Added some conditions
<强>解释强>
你需要
1)pin
指定的所有行,使用WHERE
2)所使用的pin
指定的COUNT()
月份COUNT,pin
3)如此使用的指定SUM()
的值,{{1}}
答案 1 :(得分:0)
这可以作为
完成select
pin,
type,
day,
month,
year,
timestamp,
sum(value) as value
from table_name
where pin='$pin' and month='$month'
group by pin,month,year
如果您不希望每月进行分组,请将其从group by子句中删除,并仅使用年份。
请注意,上面的查询是特定于mysql的。在标准中,当您使用聚合函数选择某些列时,它们必须出现在group by
子句中。