2

group by句を持つ2つ以上のselectステートメントに参加したいのですが、機能していません。

SELECT COUNT(`rank`) AS rank1,sitename
FROM `larrdb_ranking` 
INNER JOIN larrdb_site_list USING (sid)
WHERE rank=1
GROUP BY sitename
UNION 
SELECT COUNT(`rank`) AS rank2 ,sitename
FROM `larrdb_ranking` 
INNER JOIN larrdb_site_list USING (sid)
WHERE rank=2
GROUP BY sitename

私が得るのは最初のステートメントが機能することだけですが、2番目のステートメントは機能しません..ランク2が選択されません

アップデート:

ユニオンオールも機能しません:

    SELECT COUNT(`rank`) AS rank1,sitename
FROM `larrydb_ranking` 
INNER JOIN larrydb_site_list USING (sid)
WHERE rank=1
GROUP BY sitename
UNION ALL
SELECT COUNT(`rank`) AS rank2 ,sitename
FROM `larrydb_ranking` 
INNER JOIN larrydb_site_list USING (sid)
WHERE rank=2
GROUP BY sitename

column..rank2が表示されていません

4

1 に答える 1

1

これを試して:

SELECT SUM(IF(rank=1, 1, 0)) AS rank1, SUM(IF(rank=2, 1, 0)) AS rank2,sitename
FROM `larrydb_ranking` 
INNER JOIN larrydb_site_list USING (sid)
GROUP BY sitename
于 2012-11-26T07:03:47.477 に答える