カウントのMAXを取得する必要がありますが、機能しません.Oracleは深い集計を許可していません..
これは MAX なしの結果です。
187 1 2
187 3 1
159 1 1
159 3 1
159 2 8
188 2 9
188 1 2
188 3 1
187 2 9
select tt.token_id, tt.tag_variable_type_id, max(count(*)) as usage
from tokens tt
left outer join token_xref ttx on ttx.token_id = tt.token_id
where tag_variable_type_id in (1, 2, 3) and ttx.template_id = 52
group by tt.token_id, tt.tag_variable_type_id
また、 max(count(*)); を持つようにしました。しかし、うまくいきませんでした
1 つのクエリで COUNT() の MAX を取得し、内部選択を行わない方法はありますか
MAX以降に期待
187 2 9
159 2 8
188 2 9
編集
重複がある場合に除外する行を推測するのではなく、分析クエリを使用することにもう1つ懸念があります
MIN(tag_variable_type_id) KEEP (DENSE_RANK LAST ORDER BY usage) AS tag_variable_type_id
デコード関数を使用して変数タイプ「Priority」に割り当てたので、私の推測では
MIN(priority) KEEP (DENSE_RANK LAST ORDER BY usage) AS priority
、クエリを参照してください
しかし、私は再びtag_variable_type_idを失っています..
とにかくそれを維持するには?デコードして戻しますが、もっと良い方法かもしれません
decode (MIN(priority) KEEP (DENSE_RANK LAST ORDER BY usage), 1,2, 2,1, 3,3) as typevar,
select token_id,
MIN(priority) KEEP (DENSE_RANK LAST ORDER BY usage) AS priority,
MAX(usage) AS usage
from ( select tt.token_id, tt.tag_variable_type_id,
decode(
tt.tag_variable_type_id,
1, 2,
2, 1,
3, 3
) as priority,
count(*) as usage
from tag_tokens tt
left outer join template_token_xref ttx on ttx.token_id = tt.token_id
where tag_variable_type_id in (1, 2, 3) and ttx.template_id = 52
group by tt.token_id, tt.tag_variable_type_id)
group by token_id;