gpt4 book ai didi

MySQL如何选择一个字段的记录没有所有必需的值

转载 作者:行者123 更新时间:2023-11-29 06:11:27 24 4
gpt4 key购买 nike

在MySQL中,如何选择特定字段的记录没有覆盖所有需要的值?

例如,在下面的记录中,一些学生完成了连续编号的作业,比如s1完成了1到5,s4完成了1到7,但是s1和s4的作业MAX NUMBER不同。虽然有些学生完成了非连续编号的作业,例如s2 和 s3。如何选择完成 CONTINUOUS NUMBERED 作业的学生,​​而不考虑最大数量?

[[更多条件,sorry!]] 我需要多一个列和条件来满足我的实际工作,例如“失败”列,其中 1 表示失败,0 表示通过。

连同原来的条件,我也想排除那些没有通过一项或多项作业的学生,​​即failed必须为0。

在下面添加了failed列的记录中,我只想选择学生1,因为学生4作业失败(虽然他的作业编号也是连续的)

id student_id assignment_done 失败

1 s1 1 0

2 s1 2 0

3 s1 3 0

4 s1 4 0

5 s1 5 0

6 s2 2 0

7 s2 4 0

8 s3 1 0

9 s3 5 0

10 s4 1 0

11 s4 2 0

12 s4 3 0

13 s4 4 0

14 s4 5 0

15 s4 6 0

16 s4 7 1

最佳答案

试试这个:

SELECT student_id, 
COUNT(CASE failed
WHEN '0' THEN 1
ELSE NULL
END) as failedCount
FROM #yourTableName(e.g, students)
GROUP BY student_id
HAVING COUNT(assignment_done) = MAX(assignment_done)
AND
MAX(assignment_done)=failedCount;

关于MySQL如何选择一个字段的记录没有所有必需的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38025358/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com