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
使用多列对顶部条目进行SQL查询_Sql_Sqlite - Fatal编程技术网

使用多列对顶部条目进行SQL查询

使用多列对顶部条目进行SQL查询,sql,sqlite,Sql,Sqlite,我有一个Sqlite数据库要查询。我的基本SQL知识使我能够查询所需的大部分内容,但我被困在这里: 该表如下所示(简化了!): 我希望能够查询2000年代的顶级音乐家,并获得如下输出 | Name | Count | | ----------- | ----- | | Beatles | 2 | | The Stooges | 1 | 你会怎么做?谢谢 如果我没听懂,你需要这个 select count(*), name from ( selec

我有一个Sqlite数据库要查询。我的基本SQL知识使我能够查询所需的大部分内容,但我被困在这里:

该表如下所示(简化了!):

我希望能够查询2000年代的顶级音乐家,并获得如下输出

| Name        | Count |
| ----------- | ----- |
| Beatles     | 2     |
| The Stooges | 1     |

你会怎么做?谢谢

如果我没听懂,你需要这个

select  count(*), name from (
    select Musician_1 as Name from table where Year >= 2000
    union all 
    select Musician_2 as Name from table where Year >= 2000
) t
group by Name 
order by count(*) desc

你可能需要一个工会

  select musician, count(*) from (

      select year, musician_1 as musician
      from my_table 
      union  all

      select year, musician_2
      from my_table 
  ) t 
  where t.year between 2000 and 2010
  group by t.musician

这对我来说很好,我认为这是一个更简单的答案,因为我能够自己改变条件等,同时了解我正在做的事情。我必须多看看
工会
一点@kbecker87-不客气,请注意,如果
在2000年代
意味着2000年到2010年之间的年份(根据@scaisEdge),那么你应该改变
。。。年份>=2000年
,其中
…年份介于2000年和2010年之间
。否则,此查询将提供2000年后的所有记录。快乐编码。
  select musician, count(*) from (

      select year, musician_1 as musician
      from my_table 
      union  all

      select year, musician_2
      from my_table 
  ) t 
  where t.year between 2000 and 2010
  group by t.musician