2014-02-21 158 views
0

我需要一个查询,它返回每个团队中运动员的数量。SQL帮助初学者

它应该只显示名称长于运动员名字和姓氏平均长度的球队。

我有两张牌sportmans

这里是我的尝试:

SELECT TIMOVI,SPORTISTI COUNT(IME_PREZIME) 
FROM TIMOVI 
JOIN SPORTISTI 
    ON SIFRA=TIM, 
GROUP BY TIMOVI 
WHERE LENGTH(naziv)> ((AVG(LENGHT(ime_preizime)))/2) 
+0

SELECT TIMOVI,SPORTISTI COUNT(IME_PREZIME) FROM TIMOVI JOIN SPORTISTI ON SIFRA = TIM, GROUP BY TIMOVI WHERE LENGTH(naziv)>((AVG(LENGHT(ime_preizime)))/ 2) – Mrsevic

+0

我有两个表队和运动员 – Mrsevic

+0

TEAM具有代码PK,姓名,发现日期 – Mrsevic

回答

0

怎么样这样的查询:

SELECT t.name, COUNT(s.id) 
FROM team t 
INNER JOIN sportsman s ON s.team = t.id 
WHERE LENGTH(t.name) > (
    SELECT AVG(LENGTH(s2.name)) FROM sportsman s2 
) 
GROUP BY t.id 

对于模式是这样的:

CREATE TABLE sportsman (
    id INTEGER, 
    team INTEGER, 
    name VARCHAR(50) 
); 

CREATE TABLE team (
    id INTEGER, 
    name VARCHAR(50) 
); 

SQL Fiddle

+0

自从我进入这个网站已经有一段时间了,我没有注意到你的答案。谢谢您的回答。 – Mrsevic

+0

不客气:) – theon