Informix SQL count()比較
質問
私形成のための試みが行われているSQLクエリの数の総数各idの数'FN%'、'W%'級グループ化によるidです。場合はその数が等しく、その学生の方のみは、すべての'FN%'は'W%'または組み合わせます。
いリストのすべてのidのクライアントを持っているだけでしたポ'FN%'または'W%'
例id#683&657ということなので、結果セットのクエリが603,781&694い
id stat
683 WF
683 WF
683 WF
683 WF
683 W
683 W
657 W
657 W
657 W
657 W
781 B+
781 IP
781 WP
781 WP
603 FN
603 FN
603 F
603 FN
603 FN
694 B
694 B+
694 CI
694 LAB
694 WF
694 WF
サンプル出力:
683
657
解決
ここにおいて大きく異なることがソリューションしきいことだと思います。なんなのかばん作Informix:
SELECT id
FROM foo a
GROUP BY id
HAVING COUNT(*) = (
SELECT COUNT(*)
FROM foo b
WHERE a.id = b.id
AND (b.stat LIKE 'FN%' OR b.stat LIKE 'W%')
);
ば、サブクエリの HAVING
限verbotenもこの作品ではなく:
SELECT id
FROM (
SELECT id, COUNT(*) stat_count
FROM foo
WHERE (stat LIKE 'FN%' OR stat LIKE 'W%')
GROUP BY id
) a
WHERE stat_count = (SELECT COUNT(*) FROM foo b WHERE a.id = b.id);
更新:ただしこれらをオラクル、両です。
他のヒント
その説明によって、私の頭痛がある。また、これら二つのセット?
- idるだけで追マッチング"W%"
- idるだけで追マッチング"FN%"
まことになるので組合の検索キーワードにサブクエリのそれぞれセット。
がxxxxの温度テーブルを保持することで情報を処理する.....
select id, fullname, count(id) ttl
from xxxx
group by id, fullname
into temp www with no log;
select id, fullname, count(id) ttl_f
from xxxx
where grd like 'FN%' or grd like 'W%'
group by id, fullname
into temp wwww with no log;
select www.id, www.fullname
from www, wwww
where www.id = wwww.id and www.ttl = wwww.ttl_f;
この記述に対する独自の質問:
select first 50
c.id,
(select trim(fullname) from entity where id = c.id) fullname,
count(*),
(select count(*) from courses where id = c.id and grd like 'FN%') FN,
(select count(*) from courses where id = c.id and grd like 'W%') W
from courses c
group by 1
のサブクエリを取得する名前はるかに上利用の場合でも、joinを構成するケースがある。
編集:以下同じ行動をしていてyukondudeの答えが発揮されてHPUX/Informix v10.00になります。HC5ます。
select c.id
from courses c
where not exists (
select id
from courses
where (grd not like 'W%' and grd not like 'FN%')
and id = c.id
)
group by 1
所属していません StackOverflow