サブカテゴリでデータを集計しようとしていますが、全体のカテゴリ数を降順で並べ替える必要がありますか?例えばサブカテゴリごとに集計し、SQLでカテゴリ別に並べ替え
、私の列ヘッダーは次のとおりです。
tbl (table name)
singularity_id (key)
product_cat (category)
consumption_location (sub-category)
私のSQLクエリは次のとおりです。
SELECT
product_cat, consumption_location, COUNT(DISTINCT singularity_id) as count
FROM
tbl
GROUP BY
product_cat, consumption_location
ORDER BY
product_cat, consumption_location, count DESC;
このグループはproduct_catとconsumption_locationが、product_catカウントDESCで注文していません。
だから私のデータは、現在、私のクエリに基づいて、次のようになります。
私は何をしたいことはあるproduct_cat | consumption_location | count
------------+----------------------+--------
Fruit Juice | Store | 200
Fruit Juice | Home | 600
Soft Drink | Store | 1200
Soft Drink | Home | 100
Water | Store | 400
Water | Home | 500
:
product_cat | consumption_location | count
------------+----------------------+--------
Soft Drink | Store | 1200
Soft Drink | Home | 100
Water | Store | 400
Water | Home | 500
Fruit Juice | Store | 200
Fruit Juice | Home | 600
ソフトドリンクは、水に続いて、最も総合的なエントリを持っているので、その後のフルーツジュース。あなたは「総」
SELECT
product_cat, consumption_location, COUNT(DISTINCT singularity_id) as count,
count(*) over (partition by product_cat) as total
FROM
tbl
GROUP BY
product_cat, consumption_location
ORDER BY
total Desc, product_cat, consumption_location
ためでパーティションの数に追加することができますが、あなたはselect文から完全に合計を除外し、それを追加することができ、一時テーブルなし
期待どおりの出力を期待通りに表示できますか? –
あなたが参照している数は、product_catの数ではなく、singularity_idの数です。 COUNT(product_cat)などのselect文でcount2として別のcount列を追加してから、order by句にcount2を追加してみてください。何が起こるか教えてください – Yoav24
@TimBiegeleisen 私のデータは現在、私のクエリに基づいてこのようになります: product_cat |消費地|カウント ----- | ----- | ----- フルーツジュース|ストア| 200 フルーツジュース|ホーム| 600 ソフトドリンク|ストア| 1200 ソフトドリンク|ホーム| 100 水|ストア| 400 水|ホーム| 500 私が欲しいものは: product_cat |消費地|カウント ----- | ----- | ----- ソフトドリンク|ストア| 1200 ソフトドリンク|ホーム| 100 水|ストア| 400 水|ホーム| 500 フルーツジュース|ストア| 200 フルーツジュース|ホーム| 600 ソフトドリンクには最も多くのエントリがあり、その後に水、フルーツジュースが続きます。 – Jan