1つの出力に結合したい2つのクエリがありますが、列の数が異なるため、UNIONを使用できません。
テーブルには、すべて整数を含むref
フィールドがありますid
refid
cellid
cat
クエリ1:各一意の行の総数を検索しますcellid
SELECT cellid, COUNT(*) totalcount, cat FROM rel GROUP BY cellid
cat
クエリ2:一意のそれぞれのモード(最も一般的な値)を検索しますcellid
SELECT cellid, cat
FROM rel t
GROUP BY cellid, cat
HAVING cat = (
SELECT cat
FROM rel
WHERE cellid = t.cellid
GROUP BY cat
ORDER BY COUNT(*) DESC, cat
LIMIT 1
)
私がやろうとしていることの例を示すために、私は自分のテーブルにクエリを実行したいと思います
id | refid | cellid | cat
1 | 1 | 1 | 1
2 | 2 | 2 | 2
3 | 3 | 3 | 4
4 | 1 | 1 | 2
5 | 2 | 1 | 2
6 | 3 | 1 | 3
7 | 1 | 2 | 2
8 | 1 | 1 | 2
そして戻る
cellid | no_of_rows | Mode_of_cat
1 | 5 | 2
2 | 2 | 2
3 | 1 | 4