mysql - SQL COUNT 给出相同的值
问题描述
我有一张看起来像这样的桌子......
出席_ID 人_ID 会议_ID 日期 --------------- --------- ---------- ---------- 23 25 123 2013-03-21 24 25 456 2013-03-21 25 25 789 2013-03-21 26 13 147 2013-03-21 27 25 123 2013-03-22 28 82 147 2013-03-22 29 82 456 2013-03-22 30 13 147 2013-03-23 31 25 456 2013-03-23 32 13 456 2013-03-24 33 25 456 2013-03-28
目标是打印出员工在一天中错过一次或多次会议的所有时间。我尝试了以下查询,但它给了我所有日期的相同结果 2...
SELECT
replace(replace(dayname(date),"Saturday", "Weekend"),"Sunday", "Weekend") AS day,
count(distinct personID) AS absences
from
AttendanceRecord
GROUP BY
day;
应该在哪里...
Friday 2
Thursday 3
Weekend 3
我哪里错了?任何帮助都会受到欢迎,因为我的 SQL 技能有点生疏。谢谢!
这是 MySQL,上表是缺勤日期。因此,如果员工错过了 123 会议,他们就会出现在这张桌子上。查询是查看当天错过会议的员工人数。
解决方案
count(distinct personID) AS absences
应该
count(distinct employeeID) AS absences
因为如果你看到你的示例数据,你有:
Employee ID person ID Meeting ID date
----------- --------- ---------- ----------
23 25 123 2013-03-21
24 25 456 2013-03-21
25 25 789 2013-03-21
这 3 个不同的员工具有相同的人员 ID
要么,要么你已经得到了正确的值;有 10 个不同的 EmployeeID,但少于那个 PersonID
如果您仍想计算重复的 personID,请更改
count(distinct personID) AS absences
至
count(personID) AS absences
推荐阅读
- javascript - JavaScript 箭头函数数组
- javascript - IONIC 5:将事件更改为可观察的问题
- webpack - 在 Next.js 中编译 npm 模块
- reactjs - 如何解决 Linux 中的“npm ERR!code ELIFECYCLE”错误?
- node.js - axios拦截器总是解析promise
- python - 如何通过 Chrome 设备工具栏使用 Selenium 和 Python 向上滚动 Instagram 直接消息
- ios - 常规委托和 ProxyDelegate RxSwift
- python - 查找特定字符串并输出整行 Python
- excel - Excel 隐藏日期从 DDD MMM DD HH:MM:ss YYYY 到 YYYY-MM-DD HH:MM:ss
- javascript - javascript和html,css的错误魔术缩放