在mySQL和AS中使用count()
如何提取在mySQL和AS中使用count(),mysql,sql,select,count,group-by,Mysql,Sql,Select,Count,Group By,如何提取count()作为别名?我基本上有这个疑问 SELECT *, count(*) AS total_count FROM `action_log` WHERE `response` LIKE '%media%' AND `action_time` > '2014-01-05 21:31:33' AND `action_time` < '2014-01-07 12:30:00' AND `total_count` > '1' GROUP BY `usernam
count()
作为别名?我基本上有这个疑问
SELECT *, count(*) AS total_count
FROM `action_log`
WHERE `response` LIKE '%media%'
AND `action_time` > '2014-01-05 21:31:33'
AND `action_time` < '2014-01-07 12:30:00'
AND `total_count` > '1'
GROUP BY `username`
我知道语法不正确,我查看了mySQL引用,但似乎在任何地方都找不到它?尝试使用
have
并设置为选择与分组依据中相同的字段:
SELECT username, count(*) as total_count
FROM action_log
WHERE response LIKE '%media%'
AND action_time > '2014-01-05 21:31:33'
AND action_time < '2014-01-07 12:30:00'
GROUP BY username
HAVING count(*) > 1
选择用户名,计数(*)作为总计数
从行动日志
其中响应为“%media%”
行动时间>'2014-01-05 21:31:33'
行动时间<'2014-01-07 12:30:00'
按用户名分组
计数(*)大于1的
我认为你应该研究一下HAVING
子句。如果要根据聚合函数(如count(*)
)的结果进行筛选,则需要使用HAVING
。比如:
select some_fields, count(*) total_count
from action_log
where action_time > '2014-01-05 21:31:33'
and action_time < '2014-01-07 12:30:00'
group by some_fields
having count(*) > 1
选择一些字段,计数(*)总计数
从行动日志
其中行动时间>'2014-01-05 21:31:33'
行动时间<'2014-01-07 12:30:00'
按某些字段分组
计数(*)大于1的
您也可以在HAVING子句中使用上面的别名:
SELECT some_fields, count(*) AS total_count
FROM action_log
WHERE action_time > '2014-01-05 21:31:33'
AND action_time < '2014-01-07 12:30:00'
GROUP BY some_fields
HAVING total_count > 1
选择一些字段,计数(*)作为总计数
从行动日志
其中行动时间>'2014-01-05 21:31:33'
行动时间<'2014-01-07 12:30:00'
按某些字段分组
总计数大于1的
此查询是否有错误?您希望得到什么结果?@Curtis TrySELECT action\u log.*,COUNT(*)…
您希望获得时间跨度内的行详细信息,以及检索到的行数。这是两件不同的事情,虽然有两种方法可以同时使用一个查询,但最好是(a)执行一个详细信息查询和一个计数查询,(b)执行,或者(c)执行一个详细信息查询并在前端程序中获取计数(如果有)。
SELECT some_fields, count(*) AS total_count
FROM action_log
WHERE action_time > '2014-01-05 21:31:33'
AND action_time < '2014-01-07 12:30:00'
GROUP BY some_fields
HAVING total_count > 1