PHP 计算每天保存的文档总数

标签 php mysql

我正在尝试获取每天保存的文档总数。但我不知道如何。 这是列及其在我的数据库中的数据。

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) 在使用 countsum 等函数时,不要忘记为列添加别名(就像我对 AS saves 所做的那样)。因为这样您也可以使用 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) 或者,如果您愿意,也可以忽略 HAVINGdoc_date。这将为您提供在指定日期保存的文档。

SELECT count(doc_date) AS saves
FROM documents
WHERE doc_date = "2017-06-12"
GROUP BY doc_date
ORDER BY doc_date ASC;

关于PHP 计算每天保存的文档总数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44877041/

相关文章:

php - 我可以使用 RedBean PHP ORM 导出 Sqlite 数据库并导入到 MySQL 吗?

javascript - 将大字符串 Ajax 发送到 PHP

mysql - 如何授予用户访问mysql上所有存储过程的权限?

php - for 循环,$i 等于同一循环中的两个不同值

php - 如何使用 Adminer 导出数据库?

php - 如何从 laravel 中的数据库中选择最后一行

php - 使用PHP将数组数据插入MySQL数据库

mysql - 如果 mySQL 字段为空,则插入值

mysql - 作业帮助(唯一约束)

php - codeigniter 页面不工作,错误 500