mysql - SQL - 获取带有条件的每个不同值的计数?

标签 mysql sql select count

我有三张 table

 **room**
    room_id | nurse_needed
    ----------------------
    1       | 3
    2       | 1
    3       | 2


**doctor_schedule**
    doctor_schedule_id| room_id | date     |shift
    -------------------------------------------------
           1          | 1       |12-30-2016|   1
           2          | 2       |12-31-2016|   2
           3          | 3       |12-30-2016|   2
           4          | 2       |12-30-2016|   2
*nurse_schedule*
    nurse_schedule_id | doctor_schedule_id
    --------------------------------------
    1                 |         1         
    2                 |         1         
    3                 |         3 

病房每类配备一名医生,每类需要多名护士。护士按照医生的时间表工作。我想统计 12-30-2016 有多少类次没有足够的护士。结果应该是:

    doctor_schedule_id| room_id | date     |shift | nurse_needed|nurse_have_in_room
   ------------------------------------------------------------------------------
           1          | 1       |12-30-2016|   1  |     3       |    2
           3          | 3       |12-30-2016|   2  |     2       |    1
           4          | 2       |12-30-2016|   2  |     1       |    0

最佳答案

您可以像这样INNER JOIN所有表,并过滤掉所需护士数量小于或等于现有护士数量的表。

select d.doctor_schedule_id,
    d.room_id,
    d.date,
    d.shift,
    r.nurse_needed,
    COUNT(distinct n.nurse_schedule_id) nurse_have_in_room
from doctor_schedule d
inner join room r on r.room_id = d.room_id
left outer join nurse_schedule n on d.doctor_schedule_id = n.doctor_schedule_id
where d.date = '12-30-2016'
group by d.doctor_schedule_id,
    d.room_id,
    d.date,
    d.shift,
    r.nurse_needed
having r.nurse_needed > COUNT(distinct n.nurse_schedule_id);

关于mysql - SQL - 获取带有条件的每个不同值的计数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41409376/

相关文章:

c# - MySQL 和 SQL Server 的 IDbCommand 命名参数

php - 这段 PHP 代码有错误吗?

sql - 从单个表中两次选择同一列但条件不同

python - 在 Django 中向 QuerySet 添加文字值

mysql - 通过Mysql查询动态获取排名

mysql - 这个自左连接返回的记录比我预期的要多

php - mysql 和 php 中的日期和时间存储错误

php - 如何水平显示表格数据

php - 为什么我的 MySQL 全文搜索不起作用?

c# - Oracle 和 T-SQL 之间 Entity Framework 中的乐观并发