MySQL中请求的数据格式
我有一张桌子,看起来像这样MySQL中请求的数据格式,mysql,sql,Mysql,Sql,我有一张桌子,看起来像这样 test_id time_utc sim_mcc_mnc network_name 1234 '2015-01-14 14:03:56' '232-10' A1 只有20种类型的“sim_mcc_mnc”,我必须得到每个月的样本(记录)数量。以这种格式获取并不困难: sim_mcc_mnc year Month Number of records 23
test_id time_utc sim_mcc_mnc network_name
1234 '2015-01-14 14:03:56' '232-10' A1
只有20种类型的“sim_mcc_mnc”,我必须得到每个月的样本(记录)数量。以这种格式获取并不困难:
sim_mcc_mnc year Month Number of records
232-10 2013 January 1234
232-10 2013 February 4321
但我被要求(和我一样了解MySQL的人——也是初学者)这样做
sim_mcc_mnc January February March ....
232-10 1234 4321 5678 (these numbers are number of records)
我认为这完全违背了MySQL的“哲学”,可能是不可能做到的(不合理的困难)
我的问题是:
谢谢你的每一个意见可以这样做*
select sim_mcc_mnc,
sum(case when Month(time_utc) = 1 then 1 else 0 end) as Jan,
sum(case when Month(time_utc) = 2 then 1 else 0 end) as Feb,
...
from your_table
group by sim_mcc_mnc
例如,如果您需要这种格式的报告,您可以使用它。这件事没什么大不了的
*顺便说一句,该查询不考虑年份。这一部分在你的例子中并不清楚
特别是在MySQL中,这可以缩短一点时间
select sim_mcc_mnc,
sum(Month(time_utc) = 1) as Jan,
sum(Month(time_utc) = 2) as Feb,
...
from your_table
group by sim_mcc_mnc