ALL。我的表看起来像
NAME1 NAME2 Result
Jone Jim win
Kate Lucy loss
Jone Lucy win
Jim Jone loss
我想从NAME1中选择win case> = 3,我的代码是
SELECT NAME1,Count(Result='win') as WIN_CASE
From TABLE
Group by NAME1
Having Count(Result='win')>=3;
但是,输出的结果不正确,它只返回NAME1中显示的名字总数,我该怎么做才能解决它?
更新:感谢您的回复。 Kritner和jbarker的结果很好。我忘记添加"其中" Clause。
答案 0 :(得分:1)
SELECT NAME1, COUNT(Result) AS WIN_CASE
FROM A
WHERE Result='win'
GROUP BY NAME1
HAVING COUNT(Result)>=3
答案 1 :(得分:1)
试试这个
select *
from (select NAME1, Result, count(*) as res from test group by Result, NAME1) as t
where t.res>=3 and t.Result ='win'
答案 2 :(得分:0)
你可以这样做:
http://sqlfiddle.com/#!6/02c47/1
select name1
from test
where result = 'win'
group by name1
having count(1) >= 3
请注意,这并未考虑到" Jone"当名字2被遗忘并且有损失时至少获胜(至少那是我如何解释你的谢玛。
因此,如果name1已经获胜,而且赢了,那么jone就赢了。但是,如果jone是name2并且它是一个损失,那么jone赢得了正确吗?