name
行、、、gender (M/F)
およびを含む人々のテーブルがあるとしましょうage
。
SQLクエリは次のようになります。
- すべての女性
- 最大5人の男性
- 年齢でソートされた人々
NB。これは不自然な例です。また、Postgres固有の回答も歓迎します。
name
行、、、gender (M/F)
およびを含む人々のテーブルがあるとしましょうage
。
SQLクエリは次のようになります。
NB。これは不自然な例です。また、Postgres固有の回答も歓迎します。
SELECT name, gender, age
FROM ( SELECT name, gender, age
FROM people
WHERE gender = 'F'
UNION ALL
( SELECT name, gender, age
FROM people
WHERE gender = 'M'
LIMIT 5
)
) x
ORDER BY age
上記の解決策は特定の男性を選択しないことに注意してください。必要に応じて、男性のサブクエリに順序を適用します。
これは、剪定が行われる前に、年齢別に男性を注文します。
SELECT name, gender, age
FROM ( SELECT name, gender, age
,ROW_NUMBER() OVER (PARTITION BY gender ORDER BY age) gender_count
FROM people
) x
WHERE gender = 'F'
OR gender_count <= 5
ところで、私は「性別」が通常文法的な参照に使用されることを発見しました。この場合、「性別」は私が使用したであろう用語でした。