Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/vim/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在SQL(SQLite)中,我有一列学生姓名和他们的生日——我如何显示年龄最大的5名学生?_Sql_Sqlite - Fatal编程技术网

在SQL(SQLite)中,我有一列学生姓名和他们的生日——我如何显示年龄最大的5名学生?

在SQL(SQLite)中,我有一列学生姓名和他们的生日——我如何显示年龄最大的5名学生?,sql,sqlite,Sql,Sqlite,在SQLite中,我有一列名字和他们的生日——我如何显示最年长的5个人 在单独的命令中,如何使用生日并按年龄分组: 21-30 31-40 41-50 51+ 非常感谢 Z显示年龄最大的5个人 SELECT * FROM tableName ORDER BY birth_date DESC LIMIT 5 为了对出生日期进行分组,我使用了从的答案来计算年龄 SELECT person_name, CASE WHEN age BETWEEN 21 AND 30 THEN '21-

在SQLite中,我有一列名字和他们的生日——我如何显示最年长的5个人

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

21-30
31-40
41-50
51+
非常感谢


Z

显示年龄最大的5个人

SELECT * FROM tableName
ORDER BY birth_date DESC LIMIT 5
为了对出生日期进行分组,我使用了从的答案来计算年龄

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   
查找属于每个出生组的出生日期数

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