このようなことをしないと
2012 年 6 月 29 日午前 10:17 に編集 私のクエリはサンプル クエリよりも少し複雑であり、現在の提案は機能しないことに気付きましたが、それは私のせいです。元のクエリよりも正確なクエリを作成しました。
SELECT DISTINCT
a,
max(b) as b,
(select count(distinct c) as c from d where e=2) as c
FROM d
GROUP BY a
d からのサンプル データ
a | b | c | e
---+---+---+---
0 | 0 | 0 | 1
0 | 0 | 0 | 2
1 | 0 | 0 | 1
1 | 0 | 0 | 1
したがって、このデータ セットの場合、a = 0 の場合、c はカウント 1 (e==1) になり、a = 1 の場合、c はカウント 2 (e==1) になります。
編集の終わり
SELECT
a,
b,
(SELECT c from d where e=2)
FROM d
または、少なくともこのパフォーマンスを賢く行うためのより良い方法はありますか? おそらく組合のように。