[英]How do i merge Multiple WHERE in SQL (STUCK)
How do i merge this 2 data together to get data like this 我如何合并在一起,这2个数据来得到这样的数据本
SELECT A.schlvl AS School, COUNT(DISTINCT A.name) AS NoOfChild ,SUM(B.cat_id=1) AS Picture
FROM child AS A INNER JOIN
question AS B
ON A.child_id=B.child_id
WHERE B.answer=0 AND B.cat_id=1
GROUP BY A.schlvl
SELECT COUNT(DISTINCT A.name) AS Gotitright ,SUM(B.cat_id=2) AS Letters
FROM child AS A INNER JOIN
question AS B
ON A.child_id=B.child_id
WHERE B.answer = 0 AND B.cat_id = 2
GROUP BY A.schlvl
OR 要么
Something like this, but i am stuck with this 这样的东西,但我坚持
SELECT A.schlvl AS School, COUNT(DISTINCT A.name WHERE B.answer=0 AND B.cat_id=1) AS Picture , COUNT(DISTINCT A.name WHERE B.answer=0 AND B.cat_id=2) AS Letters
FROM child AS A INNER JOIN
question AS B
ON A.child_id=B.child_id
GROUP BY A.schlvl
From your query. 从您的查询。
You can try to use IN
in B.cat_id
to get cat_id
1
or 2
in WHERE
clause. 您可以尝试在
B.cat_id
使用IN
来在WHERE
子句中获取cat_id
1
或2
。
use Aggregate function condition let CASE WHEN
in SUM
function. 使用聚合函数条件在
SUM
函数中设置CASE WHEN
。
SELECT A.schlvl AS School, COUNT(DISTINCT CASE WHEN B.cat_id = 1 THEN A.name END) AS NoOfChild ,SUM(CASE WHEN B.cat_id IN (1,2) THEN 1 END) AS Picture
FROM
child AS A INNER JOIN question AS B ON A.child_id=B.child_id
WHERE B.answer=0 AND B.cat_id= in (1,2)
GROUP BY A.schlvl
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.