如何计算mysql中的子查询
我有一个疑问:如何计算mysql中的子查询,mysql,sql,Mysql,Sql,我有一个疑问: Select DATE_FORMAT(calls.call_datetime, "%Y-%m-%d") as `groupdate` from calls WHERE calls.job_id =1 group by DATE_FORMAT(calls.call_datetime, "%Y-%m-%d") 返回: 分组日期 2018-07-06 2018-07-06 有两排。如何对上述查询进行计数,使结果变为一行的“2” 我想要的是: 结果 二, 谢谢,请帮我试试: S
Select
DATE_FORMAT(calls.call_datetime, "%Y-%m-%d") as `groupdate`
from
calls
WHERE calls.job_id =1
group by DATE_FORMAT(calls.call_datetime,
"%Y-%m-%d")
返回:
分组日期
2018-07-06
2018-07-06
有两排。如何对上述查询进行计数,使结果变为一行的“2”
我想要的是:
结果
二,
谢谢,请帮我试试:
Select
Count(DATE_FORMAT(calls.call_datetime, "%Y-%m-%d")) as `groupdate`
from
calls
WHERE calls.job_id =1
group by DATE_FORMAT(calls.call_datetime,
"%Y-%m-%d")
您应该使用count()
最简单的方法是使用
Select
COUNT(*) as Result
from
calls
WHERE calls.job_id =1
group by DATE_FORMAT(calls.call_datetime, "%Y-%m-%d")
或者是一个交付表方法
SELECT
COUNT(*) as Result
FROM (
Select
DATE_FORMAT(calls.call_datetime, "%Y-%m-%d") as `groupdate`
from
calls
WHERE calls.job_id =1
group by DATE_FORMAT(calls.call_datetime, "%Y-%m-%d")
) AS a
两个查询应返回您想要的相同预期结果。问题不明确。因为一个日期有两行,所以期望的答案是“2”吗?如果有多个约会呢
SELECT COUNT(*) FROM calls WHERE ...; -- delivers "2"
SELECT COUNT(*) FROM calls WHERE ...; GROUP BY DATE(datetime) -- also delivers "2"
SELECT COUNT(DISTINCT DATE(call_datetime)) FROM calls WHERE ...; -- delivers "1"
可能重复@Alexander-不,这不是同一个问题。没错,这个问题的第二个最佳答案对这个问题来说是正确的,但对那个问题来说是错误的。
SELECT COUNT(*) FROM calls WHERE ...; -- delivers "2"
SELECT COUNT(*) FROM calls WHERE ...; GROUP BY DATE(datetime) -- also delivers "2"
SELECT COUNT(DISTINCT DATE(call_datetime)) FROM calls WHERE ...; -- delivers "1"