gpt4 book ai didi

mysql - 在单个查询中从同一列不同的 WHERE 获得 2 个不同的结果

转载 作者:行者123 更新时间:2023-11-28 23:34:06 25 4
gpt4 key购买 nike

SELECT COUNT(NAME) AS NAMEA
FROM (DATA.1 WHERE MARKS > 50), COUNT(NAME) AS NAMEB FROM DATA.1

运行后我得到了这个

Syntax error in JOIN operation

我正在尝试获取学生通过的百分比,没有。学生准证,总数学生和没有。学生不及格。

请帮我找出上面查询中的错误。

请帮帮我。谢谢

最佳答案

您实际上是在一次运行两个查询。

查询 1:

SELECT COUNT(NAME) AS NAMEA
FROM DATA1
WHERE MARKS > 50

查询 2:

SELECT COUNT(NAME) AS NAMEB
FROM DATA1

如果您希望同一查询中包含两列,那么您必须对第一个查询使用 CASE WHEN 的 SUM。

SELECT SUM(CASE WHEN MARKS > 50 THEN 1 ELSE 0 END) AS NAMEA,
COUNT(NAME) AS NAMEB
FROM DATA1

对于其余的点,您需要查询:

SELECT COUNT(NAME) AS TOTAL_STUDENTS,
SUM(CASE WHEN MARKS > 50 THEN 1 ELSE 0 END) AS STUDENTS_PASSED,
SUM(CASE WHEN MARKS > 50 THEN 1 ELSE 0 END)/COUNT(NAME) AS PASS_RATE,
SUM(CASE WHEN MARKS < 50 THEN 1 ELSE 0 END) AS STUDENTS_FAILED
FROM DATA1

请记住,这漏掉了正好有 50 分的学生。如果 50 是及格,则您需要为 STUDENTS_PASSED 使用 >= 50。如果 50 是失败的,那么您需要对 STUDENTS_FAILED 使用 <= 50

关于mysql - 在单个查询中从同一列不同的 WHERE 获得 2 个不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36328713/

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