SQLで各行の特定カラムの値が、そのカラム内に何個あるかカウントして表示したい。
Q&A
Closed
解決したいこと
data | count |
---|---|
a | |
b | |
c | |
a | |
a |
例えば上のようなテーブルがあるとして、「count」列に下の様なそのカラム内で「data」が重複している数を表示させたいんだけど、「count」列の定義がさっぱり想像もつかない(´・ω・`)そもそもできないのか……
data | count |
---|---|
a | 3 |
b | 1 |
c | 1 |
a | 3 |
a | 3 |
1
Q&A
Closed
data | count |
---|---|
a | |
b | |
c | |
a | |
a |
例えば上のようなテーブルがあるとして、「count」列に下の様なそのカラム内で「data」が重複している数を表示させたいんだけど、「count」列の定義がさっぱり想像もつかない(´・ω・`)そもそもできないのか……
data | count |
---|---|
a | 3 |
b | 1 |
c | 1 |
a | 3 |
a | 3 |
ウィンドウ関数を使うと良いかもしれません
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
@jhiaxus
Questioner
とりあえず、グループ化について調べましょう。