我正在尝试获得每天保存的文档总数。但我不知道如何。这是我的数据库中的列及其数据。
report_id doc_date total_doc
- 1 2017-06-06 1
- 2 2017-06-23 1
- 3 2017-06-14 1
- 4 2017-06-12 1
- 5 2017-06-16 1
- 6 2017-06-21 1
- 7 2017-06-14 1
- 9 2017-06-13 1
- 10 2017-06-21 1
- 11 2017-06-12 1
- 12 2017-06-18 1
- 13 2017-06-12 1
.....
上面有类似的日期,例如,
- 3 2017-06-14 1
- 7 2017-06-14 1
我需要一个 sql 查询来计算和显示每天保存的文档总数。因此,对于 2017 年 6 月 14 日,总数为 2。有什么想法吗?仅供参考,total_doc 自动等于 1。更新:并显示当天保存的文档总数。
SELECT
doc_date,
count(doc_date) AS saves
FROM documents
GROUP BY doc_date
ORDER BY doc_date ASC;
或者
SELECT
doc_date,
sum(total_doc) AS saves
FROM documents
GROUP BY doc_date
ORDER BY doc_date ASC;
注意事项:
1)如果您使用的是第一个选项,那么您可以删除列total_doc
。这也是我的建议。你有一个很好的doc_date
列中日期值的 mysql 格式,所以你可以对它进行可靠的操作。
2)doc_date
如果您愿意,您可以按降序对记录进行排序。
3)AS saves
在使用count
or 之类的函数时,不要忘记给列添加别名(就像我对sum
. 因为那样你也可以使用HAVING
过滤器。所以像这样 - 每天保存不止一个的所有文档:
SELECT
doc_date,
count(doc_date) AS saves
FROM documents
GROUP BY doc_date
HAVING saves > 1
ORDER BY doc_date ASC;
然后您还可以在指定日期仅按一个保存的文档进行过滤:
SELECT
doc_date,
count(doc_date) AS saves
FROM documents
WHERE doc_date = "2017-06-12"
GROUP BY doc_date
HAVING saves > 1
ORDER BY doc_date ASC;
4)或者你也可以忽略HAVING
,doc_date
如果你愿意。这将为您提供在指定日期保存的文档。
SELECT count(doc_date) AS saves
FROM documents
WHERE doc_date = "2017-06-12"
GROUP BY doc_date
ORDER BY doc_date ASC;
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句