jhiaxus
@jhiaxus

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

SQLで各行の特定カラムの値が、そのカラム内に何個あるかカウントして表示したい。

解決したいこと

data count
a
b
c
a
a

例えば上のようなテーブルがあるとして、「count」列に下の様なそのカラム内で「data」が重複している数を表示させたいんだけど、「count」列の定義がさっぱり想像もつかない(´・ω・`)そもそもできないのか……

data count
a 3
b 1
c 1
a 3
a 3
1

2Answer

ウィンドウ関数を使うと良いかもしれません:ok_hand:

CREATE TABLE tbHoge(
	data varchar
)

INSERT INTO tbHoge
VALUES
('a'),
('b'),
('c'),
('a'),
('a')

SELECT
 data,
 COUNT(*) OVER(PARTITION BY data) AS count
FROM 
tbHoge
1Like

Comments

  1. @jhiaxus

    Questioner

    うわーッ!正にこれです。
    group化じゃなくて、当該行の値を使ってcountしたかった訳なんですが、
    window関数と言うものの存在を丸っと知らなかったので
    「重複」「数える」とか原始人みたいなワードしか思いつかず、
    検索でも見つけられなかったのでqiitaで質問させていただいていた次第です。
    とても助かりました。ありがとうございます!
  2. この手の話は検索で見つけるのが難しいですよね> <

    解決されて良かったです!

Your answer might help someone💌