mysql - 如何显示一个月内每一天的多个结果计数
问题描述
我不熟悉查询语言,尤其是 mysql。所以我有一个测试项目,它有 2 个包含一些虚拟数据的表。这是表格:
插座表
订单表
我想计算状态,将其分为两个不同的列,状态和状态_1。状态 1 的条件是 order.status = 1 和状态_1 = 2。下图是预期结果
预期结果
我只尝试过这个因为我不知道如何获取 status_1 值
正如你在这里看到的:
没有状态_1
结果如下:
有人可以帮我解决这个问题吗?或者给点线索?还是不明白这个逻辑
解决方案
count() 函数中的用例语句用于检索所需的结果。
-- MySQL
SELECT o.name, od.tdate
, COUNT(CASE WHEN od.status = 1 THEN 1 END) status_1
, COUNT(CASE WHEN od.status = 2 THEN 1 END) status_2
FROM outlet_tbl o
INNER JOIN order_tbl od
ON o.id = od.outlet_id
GROUP BY o.name, od.tdate
请从https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=d7c74940fccf9149132dfc4e90072d06检查
推荐阅读
- postgresql - Flask 应用程序在 Heroku 上冻结,但在 localhost 上运行良好
- operating-system - 分析项目需求并建议应使用哪个操作系统来开发应用程序
- c++ - gdb如何在匿名命名空间中找到变量的地址
- php - WordPress/WooCommerce 为自定义帖子元生成独特的价值
- java - 使用邮递员上传文件有效,但使用 Apache HttpClient 失败
- postgresql - 完整架构上的 ST_SnaptoGrid 甚至默认?
- facebook-graph-api - Facebook groups_access_member_info 问题
- javascript - 在 vue 中切换数据
- c# - 从 ASP.Net Core WebApi 连接到 Docker 托管的 postgre db 时出现问题
- r - 当元素用斜线分隔时匹配两个表的列