2015-11-26 61 views
-1

我有兩個在sql中創建的表。 播放器(代碼(PK),姓,名)錯誤(playererrorcode(PK),日期,貨幣,代碼(FK球員))Sql,只打印值至少出現n次的行


所以兩個表的樣子:
玩家:

A1 Surname1 Name1 
A2 Surname2 Name2 


和錯誤,例如:

E1 2015/7/10 10$ A1 
E2 2015/2/20 50$ A1 
E3 2015/1/30 40$ A2 
E4 2015/5/20 30$ A1 

好了,現在,我必須打印(選擇該語言)有至少3個僅錯誤的玩家!
在這種情況下,我只想打印包含以下內容的行:至少有3個錯誤的姓氏和姓名,然後必須僅打印surname1和name1。

如何做到這一點?

+1

這是應該在MySQL,SQL Server和Postgres中工作? –

回答

0

在SQL Server,你可以使用計數聚合得到每個玩家錯誤的數量和使用指定所需的錯誤數量 - 這樣的:

SELECT 
p.surname, 
p.name, 
FROM players as p 
INNER JOIN errors as e 
on p.code=e.code 
GROUP BY 
p.surname, 
p.name 
HAVING 
COUNT(e.playererrorcode)>=3