[解決済み] Oracle : キーワードの最初の行に 'Count over Partition by' を単独で出力する。
2022-03-07 12:29:31
質問
私は以下のようなテーブルを照会しなければなりません。
select count(*) over (PARTITION BY offer_status) as count, name, status
from tablename
として出力されます。
3|名前1|入力
3|名前1|入力
3|名前2|クリア
1|名前3|完了
3|名前3|クリア
3|名前1|入力
3|名前2|クリア
として取得したいのですが。
3|名前1|入力
| 名前3|入力済み
3|名前2|クリア
1|名前3|完了
| 名前3|クリア
| 名前3|入力
| 名前3|クリア
キーワード(of status)の最初の出現に対してのみ、ステータスのカウントを取得すること。
または、他の方法を提案してください。
解決方法は?
私ならこんな風にします。
SELECT CASE WHEN rn=1 THEN cnt END cnt, order_name, status
FROM
(
SELECT count(*) OVER (PARTITION BY status) cnt,
ROW_NUMBER() OVER (PARTITION BY status ORDER BY order_name) rn,
order_name,status
FROM input_table
)
参照 SQLフィドル
Gordon Linoffが言ったように、ある種の順序付けが必要です。私はorder_nameで並べましたが、もしテーブルの中に他のフィールドがあれば、それを代わりに使うことができます。
関連
-
[解決済み】ストアドプロシージャーのエラー ORA-06550
-
[解決済み】2つの列を分割する方法は?
-
[解決済み】Teradata - 計算中に数値のオーバーフローが発生しました。
-
[解決済み] テスト
-
[解決済み】ORA-01791: SELECTされた式ではない
-
[解決済み] mongoの外部キー?
-
[解決済み] エラー (ORA-00923: 期待された場所に FROM キーワードが見つかりませんでした)
-
[解決済み] Presto の JSON_EXTRACT で ' ' 文字を含むキーに問題がある。
-
[解決済み] nvarchar 値 ... をデータ型 int に変換する際に、変換に失敗しました。
-
[解決済み】Oracle「Partition By」キーワード
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】ストアドプロシージャーのエラー ORA-06550
-
[解決済み】2つの列を分割する方法は?
-
[解決済み] INSERT ステートメントが FOREIGN KEY 制約と競合する - SQL Server
-
[解決済み] SQLクエリ「00904. 00000 - "%s: 無効な識別子".
-
[解決済み] 2つの列を分割するには?
-
[解決済み] pg_restoreです。[archiver] 入力ファイルはテキスト形式のダンプであるように見えます。psql を使用してください。
-
[解決済み] SQLです。最初の出現箇所のみを返す
-
[解決済み] Ruby On Rails で NuoDB を使用して SQL コマンドを手動で実行する方法
-
[解決済み] PostgreSQL - json 型の等値演算子を識別できませんでした。
-
[解決済み] SQLiteでどのようにピボットするか、つまり、長い形式で保存されたテーブルを広い形式で選択するか?