简体   繁体   English

一个表中的多个计数永久汇总行中的列

[英]Multiple counts in one table UNINTENTIONALLY summing columns in rows

I'm trying to get the number of hits for each day during a break to all show up in one table. 我正试图获取休息期间每一天的点击数,以便全部显示在一张桌子中。

SELECT module, COUNT( * ) 
FROM mdl_log AS l
WHERE (FROM_UNIXTIME( l.`time` ) BETWEEN  '2014-12-16 00:00:00' AND '2014-12-17 00:00:00')
GROUP BY module

Gives me exactly what I need for one day (the 16th) 给我确切的一天(16日)所需的东西

module  Count(*)
admin   11
assign  1
course  20
outcome 2
user    3

But when I try to get multiple days in the same table it give me a sum of the column in each row. 但是,当我尝试在同一张表中获得多天时,会给我每一行的总和。

SELECT module 

 ,(SELECT COUNT( * ) 
FROM mdl_log as l
WHERE (FROM_UNIXTIME( l.`time` ) BETWEEN  '2014-12-12 00:00:00' AND '2014-12-13 00:00:00')
) AS "12/12/2014"

,(SELECT COUNT( * ) 
FROM mdl_log AS l
WHERE (FROM_UNIXTIME( l.`time` ) BETWEEN  '2014-12-16 00:00:00' AND '2014-12-17 00:00:00')
) AS "12/16/14"

FROM mdl_log 
group by module 

This... 这个...

module 12/12/14  12/16/14
admin      1    37
assign     1    37
calendar   1    37
course     1    37
forum      1    37
grade      1    37
hsuforum   1    37
library    1    37
login      1    37
lti        1    37
message    1    37
outcome    1    37
question   1    37
quiz       1    37
role       1    37
url        1    37
user       1    37
webservice  1   37
workshop    1   37

Can you give me any advice on how to get this so it shows up how I want it? 您能给我什么建议,以显示我想要的方式吗? eg 例如

module  12/12/14  12/16/14
admin   1         11
assign  0         1
user    0         3

etc. 等等

Apply the date criterion inside the count function: count函数中应用日期条件:

SELECT module, 
COUNT(IF(FROM_UNIXTIME( l.`time` ) BETWEEN  '2014-12-12 00:00:00' AND '2014-12-13 00:00:00', 1, NULL) AS "12/12/2014",
COUNT(IF(FROM_UNIXTIME( l.`time` ) BETWEEN  '2014-12-16 00:00:00' AND '2014-12-17 00:00:00', 1, NULL) AS "12/16/2014"
FROM mdl_log 
group by module 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM