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 likes
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
とりあえず、グループ化について調べましょう。