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