将两个Count Queries组合成一个

时间:2014-04-28 14:19:12

标签: mysql sql

我有两个问题

SELECT course,
COUNT(*) AS countp 
FROM table1 
WHERE pickout='Yes' 
GROUP BY course

SELECT course,
COUNT(*) AS countw
FROM table1
WHERE pickout='Yes' AND result='Won'
GROUP BY course

我想要实现的是一个包含三列CourseCountpCountw的表格,但我无法将这两个列合并为一个查询。

基本上我正在寻找一个包含选秀权数量和胜利数量的课程列表。

3 个答案:

答案 0 :(得分:3)

在MySQL中,条件的结果评估为10。你可以总结一下

SELECT course, 
       sum(pickout='Yes') AS countp,
       sum(pickout='Yes' AND result='Won') AS countw
FROM table1 
GROUP BY course

答案 1 :(得分:1)

尝试以下SQL:

SELECT 
Course,
COUNT(*) AS CountP,
SUM(CASE WHEN result='Won' THEN 1 ELSE 0 END) AS CountW
FROM table1
WHERE pickout = 'Yes'
GROUP BY Course

答案 2 :(得分:0)

试试这个:

select a.course,a.countp ,b.countw  from (SELECT course, COUNT(*) AS countp FROM table1 WHERE pickout='Yes' GROUP BY course)a full join 
(SELECT course, COUNT(*) AS countw FROM table1 WHERE pickout='Yes' AND result='Won' GROUP BY course)b
a.course=b.course