从SQL获取格式化和排序的数据

时间:2014-04-25 08:49:19

标签: mysql sql sorting group-by

我想从SQL获取图表数据。我没有在PHP中获取所有数据和排序,而是希望使用SQL来解决这个问题。

日期应按日分组,平台应计算并分类到ios和android。

BONUS:如果您可以按所有值而不是给定值对平台进行排序,那就更好了。

以下是SQL中提供的数据:

date                |platform
--------------------+----------
2014-04-22 11:15:55 |ios
2014-04-22 12:15:55 |android
2014-04-22 13:15:55 |ios
2014-04-23 11:15:55 |ios
2014-04-23 12:15:55 |android
2014-04-23 13:15:55 |android

期望的输出:

date        |ios    |android
------------+-------+-----
2014-04-22  |2      |1
2014-04-23  |1      |2

1 个答案:

答案 0 :(得分:3)

SELECT `date`,
       sum(`ios`) AS `ios`,
       sum(`android`) AS `android`
FROM
  (SELECT DATE(`date`) AS `date`,
          CASE
              WHEN `platform`='ios' THEN 1
              ELSE 0
          END AS `ios`,
          CASE
              WHEN `platform`='android' THEN 1
              ELSE 0
          END AS `android`
   FROM demo) t
GROUP BY `date`