🐈
GROUP BYについて
このドキュメントは、PostgreSQLのGROUP BYについて、使用する場面や例について書かれています。私の学習のために調査した内容が、他の方の参考になれば幸いです。
どんな時に使うのか
複数のレコードの特定のカラムをまとめて、集計したい時に使います。
例
「食べたい中華まん投稿ページ!」というサイトがある想定で、ユーザーIDごとの投稿数をGROUP BYを使って計測する例になります。
前提のSQL
CREATE TABLE posts (
post_id SERIAL NOT NULL PRIMARY KEY,
user_id INTEGER NOT NULL,
post TEXT
);
INSERT INTO posts(user_id, post) VALUES(1, '肉まん食べたい');
INSERT INTO posts(user_id, post) VALUES(1, 'あんまん食べたい');
INSERT INTO posts(user_id, post) VALUES(1, 'ピザまん食べたい');
INSERT INTO posts(user_id, post) VALUES(2, '肉まん食べたい');
GROUP BYを使用したSQL
SELECT
COUNT(user_id),
user_id
FROM posts
GROUP BY user_id
ORDER BY count DESC;
結果
count | user_id |
---|---|
1 | 2 |
3 | 1 |
Discussion