sql group按日期相同的数据

时间:2013-12-16 03:48:08

标签: mysql sql group-by

这对我来说有点过于复杂,所以我想寻求帮助......

我在这样的表中有数据:

 |   element     |     title      |      date       |    clicks   |

     vitrina           hello          2013-12-01           100      
     banner            hello          2013-12-01           100
     banner            hello          2013-12-02           100
     vitrina           hello          2013-12-02           100
     vitrina           hello          2013-12-03           100
     vitrina           hellox         2013-12-04           100

基本上,我想加入具有不同日期的相同元素的所有行,并总结点击次数。

结果:

 |   element     |     title      |      date                    |    clicks   |

     vitrina           hello          2013-12-01 a 2013-12-03           300
     banner            hello          2013-12-01 a 2013-12-02           200
     vitrina           hellox         2013-12-04                        100

我正在使用PHP,我打算做一个普通的查询然后比较行并用循环和东西来做,但我想必须有一种方法来查询这样的数据。

希望你能提供帮助,谢谢!

1 个答案:

答案 0 :(得分:1)

这是一个简单的聚合查询:

SELECT element, 
       title, 
       ( CASE 
           WHEN Min(date) <> Max(date) THEN Concat(Min(date), ' a ', Max(date)) 
           ELSE Min(date) 
         END )     AS date, 
       Sum(clicks) AS clicks 
FROM   t 
GROUP  BY element, 
          title; 

根据date的数据类型,您可能需要使用date_format()对其进行格式化。