Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL中请求的数据格式_Mysql_Sql - Fatal编程技术网

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