1 2 3 4 5 6 7 8 9 10 11 12 13 14
| SELECT T1.clef, COUNT(*) AS N, 1 AS GENRE
FROM membres AS T1
INNER JOIN membres AS T2
ON T1.clef <= T2.clef
GROUP BY T1.clef
WHERE genre = 'Homme'
UNION ALL
SELECT T1.clef, COUNT(*) AS N, 1 AS GENRE
FROM membres AS T1
INNER JOIN membres AS T2
ON T1.clef <= T2.clef
GROUP BY T1.clef
WHERE genre = 'Femme'
ORDER BY N, GENRE |
Intéressant mais même sans jeu de données si on créé la table:
create table membres(clef int, genre text);
et qu'on essaie la requête elle n'est pas valide.
ERROR: syntax error at or near "WHERE"
LINE 6: WHERE genre = 'Homme'
Même en remontant le WHERE avant le GROUP BY ce qui parait être la chose à faire, on obtient:
ERROR: column reference "genre" is ambiguous
LINE 5: WHERE genre = 'Homme'
^
C'est que genre désigne à la fois un alias de "1" mais aussi une colonne de T1 mais aussi une colonne de T2.
Une version valide serait évidemment plus utile!
Partager