2015-11-03 59 views
0

我有一张表,看起来像这样。在MySQL中请求的数据格式

test_id  time_utc    sim_mcc_mnc network_name 
1234 '2015-01-14 14:03:56'   '232-10'   A1 

“sim_mcc_mnc”只有20种类型,我必须得到每个月的样本数(记录)。这是不难得到它的格式如下:

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的“哲学”,它可能是不可能的做(不合理的困难)。

我的问题是:

  1. 你的观点就可以了点。
  2. 是否有可能以请求的格式获取数据?

感谢您的每一个意见

回答

0

它可以这样做*

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