我正在尝试编写一个查询,以从我的数据库中获取在表中的特定日期发生的记录的计数。我的查询如下所示:
SELECT
count(id),
A.status,
YEAR(A.dateRequested),
MONTHNAME(A.dateRequested),
WEEK(A.dateRequested),
DAYNAME(A.dateRequested)
FROM ASSESSMENT A where A.status = 'Pending';它给我的只是一条记录:
50 Pending 2013 April 16 Monday为什么它没有给我列出的所有记录。例如,我在周一插入了50条记录,在周二插入了20条记录,以此类推。我怎么才能得到这样的名单呢?为什么函数WEEK(A.dateRequested)返回16,因为一个月有4周?
发布于 2013-06-20 19:16:07
您正在使用没有group by的count(id)。MySQL的工作方式是将其转换为空的group by。您将获得整个表的count(id),其他字段将被设置为一个随机行。
要按工作日列出待处理记录的数量,请执行以下操作:
SELECT DAYNAME(A.dateRequested)
, count(id),
FROM ASSESSMENT A
where A.status = 'Pending'
group by
DAYNAME(A.dateRequested)发布于 2013-06-20 19:17:01
WHERE A.dateRequested = '2013-06-20'
发布于 2013-06-20 19:17:51
试试这个:-
SELECT
count(id),
A.status,
YEAR(A.dateRequested),
MONTHNAME(A.dateRequested),
WEEK(A.dateRequested),
DAYNAME(A.dateRequested)
FROM ASSESSMENT A where A.status = 'Pending'
GROUP BY A.status,
YEAR(A.dateRequested),
MONTHNAME(A.dateRequested),
WEEK(A.dateRequested),
DAYNAME(A.dateRequested)https://stackoverflow.com/questions/17212147
复制相似问题