mysql - MYSQL 查询以显示当前月份的记录数
问题描述
如屏幕截图所示,我有一个名为“orders”的 mysql 表。我想获取表中的记录总数以及当前月份的记录。我试过
SELECT COUNT(*),COUNT(MONTH(date) = month(CURRENT_DATE())) FROM orders
但它返回记录总数,在本例中为 8。也尝试使用 CASE,但这也不起作用。我希望结果为 total_orders = 8 ,本月的订单数 = 6。
谢谢
解决方案
你很接近,COUNT()
不仅计算TRUE
值,它计算任何和所有non-NULL
值,所以它FALSE
也在计算值。
尝试...
SELECT
COUNT(*),
SUM(DATE_FORMAT(date, '%Y-%m-01') = DATE_FORMAT(CURRENT_DATE(), '%Y-%m-01'))
FROM
orders
求和时,TRUE
被视为1
,并且FALSE
被视为0
我也使用DATE_FORMAT()
而不是MONTH()
这样你就不会意外地计算前几年同一个月的值。
- 如果你想要,只需将
DATE_FORMAT()
背面更改为MONTH()
并保留SUM()
推荐阅读
- ssl - 如何将 SSL 恢复到它已停止工作的站点?
- apache - apache重写 - 将url重写到子文件夹但如果某个段在url中则nof
- java - 如何在android中制作水平可拉伸的背景
- typescript - TypeScript 按属性对对象数组进行排序
- python - 在 selenium python 中读取和测试 CSV 文件
- python - OSError: [Errno 24] 打开的文件太多:
- python - 如何检查从 Min 到 Max 的范围是否与 python 中的现有范围列表重叠
- javascript - Barba.js 转换在真实服务器上不起作用
- ubuntu - 如何将背景的输出重定向到文件
- ruby-on-rails - 在 Rails 6 上使用相同的迁移和模型为多个命名空间生成脚手架