SELECT COUNT(NAME) AS NAMEA
FROM (DATA.1 WHERE MARKS > 50), COUNT(NAME) AS NAMEB FROM DATA.1
运行后我得到了这个
JOIN操作中的语法错误
我试图获得学生通行证的百分比,不。学生通行证,总数没有。学生和没有。学生失败了。
请帮我查一下上述查询中的错误。
请帮帮我。 感谢
答案 0 :(得分:1)
你实际上是在一个中运行两个查询。
查询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使用&gt; = 50 。如果50表示失败,那么您需要对STUDENTS_FAILED使用&lt; = 50 。