首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在SQL (SQLite)中,我有一列小学生的名字和他们的生日--我如何向最年长的5名学生展示?

在SQL (SQLite)中,我有一列小学生的名字和他们的生日--我如何向最年长的5名学生展示?
EN

Stack Overflow用户
提问于 2014-04-05 18:07:01
回答 1查看 72关注 0票数 0

在SQL (SQLite)中,我有一列名字和他们的生日--我如何向最年长的5个人展示?

在一个单独的命令中,我如何使用生日并按年龄分组:

代码语言:javascript
复制
21-30
31-40
41-50
51+

非常感谢

Z

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-05 18:13:20

展示最年长的5个人

代码语言:javascript
复制
SELECT * FROM tableName
ORDER BY birth_date DESC LIMIT 5

为了分组生日,我使用了here的答案来计算年龄

代码语言:javascript
复制
SELECT person_name,
       CASE WHEN age BETWEEN 21 AND 30 THEN '21-30'
            WHEN age BETWEEN 31 AND 40 THEN '31-40'
            WHEN age BETWEEN 31 AND 40 THEN '31-40'
            WHEN age >=51 THEN '51+' END as Age_Group
FROM
(
   SELECT person_name,
       (strftime('%Y', 'now') - strftime('%Y', Birth_Date)) - (strftime('%m-%d', 'now') < strftime('%m-%d', Birth_Date));
   FROM tableName as age

) As Z   

查找属于每个出生组的生日数

代码语言:javascript
复制
SELECT Age_Group , COUNT(*) as countAgeGroup
FROM (
       SELECT 
           CASE WHEN age BETWEEN 21 AND 30 THEN '21-30'
                WHEN age BETWEEN 31 AND 40 THEN '31-40'
                WHEN age BETWEEN 31 AND 40 THEN '31-40'
                WHEN age >=51 THEN '51+' END as Age_Group
       FROM
       (
          SELECT 
             (strftime('%Y', 'now') - strftime('%Y', Birth_Date)) - (strftime('%m-%d', 'now') < strftime('%m-%d', Birth_Date));
          FROM tableName as age

       ) As Z  
   ) As Y
  GROUP BY Y.Age_Group
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22884709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档