SQLで○○代ごとの合計や平均値を出す

SQLと書かれたタイトル SQL

こんにちは。ぽこです!

今回は、SQLを使って年代ごとの合計や平均値を出す方法を紹介します。

コード

10代、20代…のように、年代ごとの人数と、給料の平均値を出します。

SELECT TRUNCATE(TIMESTAMPDIFF(YEAR, birth, '2022-07-28'), -1) AS age, 
COUNT(id) AS member_count, 
AVERAGE(salary)
FROM member 
GROUP BY age

TRUNCATE、TIMESTAMPDIFFを使うことで、年齢を抽出しています。

「TRUNCATE関数」を使用すると、第2引数で指定した「-1桁」つまり1桁目を切り捨てることができます。

「FLOOR関数」を使って、次のように書くこともできます。

SELECT FLOOR(TIMESTAMPDIFF(YEAR, birth, '2022-07-28')/10)*10 AS age, 
COUNT(id) AS member_count, 
AVERAGE(salary)
FROM member 
GROUP BY age

こちらは、10で割ってから余りを切り捨てています。

タイトルとURLをコピーしました