MySQL 是一種關(guān)系型數(shù)據(jù)庫管理系統(tǒng),可以用于存儲和處理大量的數(shù)據(jù)。在很多應(yīng)用場景中,我們需要對數(shù)據(jù)進(jìn)行分析和統(tǒng)計。比如,針對不同的年齡段,統(tǒng)計某項指標(biāo)的平均值或者總和。這篇文章將介紹如何使用 MySQL 統(tǒng)計不同年齡段的數(shù)據(jù)。
CREATE TABLE user_info ( id INT PRIMARY KEY, name VARCHAR(50), age INT, gender VARCHAR(10) ); INSERT INTO user_info (id, name, age, gender) VALUES (1, '張三', 18, '男'), (2, '李四', 20, '女'), (3, '王五', 22, '男'), (4, '趙六', 25, '女'), (5, '孫七', 30, '男'), (6, '周八', 35, '女'), (7, '吳九', 40, '男'), (8, '鄭十', 45, '女');
上面的代碼創(chuàng)建了一個名為 user_info 的表,包含 id、name、age 和 gender 四個字段。然后往表中插入了 8 條記錄,模擬了不同年齡段的用戶數(shù)據(jù)。
SELECT CASE WHEN age< 20 THEN '0-20' WHEN age >= 20 AND age< 30 THEN '20-30' WHEN age >= 30 AND age< 40 THEN '30-40' ELSE '40以上' END AS age_range, COUNT(*) AS count FROM user_info GROUP BY age_range;
上面的代碼使用 CASE WHEN 語句將年齡分成不同的區(qū)間,并對每個區(qū)間內(nèi)的記錄進(jìn)行了統(tǒng)計。最后使用 GROUP BY 按照年齡區(qū)間進(jìn)行分組。
執(zhí)行上面的代碼,我們將得到如下結(jié)果:
+-----------+-------+ | age_range | count | +-----------+-------+ | 0-20 | 2 | | 20-30 | 2 | | 30-40 | 2 | | 40以上 | 2 | +-----------+-------+
這個結(jié)果給出了用戶數(shù)據(jù)按照年齡區(qū)間進(jìn)行分組后的統(tǒng)計結(jié)果。這個結(jié)果可以用來進(jìn)一步分析,比如計算每個年齡段內(nèi)指標(biāo)的平均值或者總和。