sqlite3选择同时引用另一列的列

时间:2018-09-09 23:58:47

标签: sql sqlite

我的my_table中的数据看起来像

fruit1     fruit2      state
apple      orange      iowa
apple      orange      delaware
apple      orange      florida
grape      plum        texas
kiwi       orange      hawaii
kiwi       orange      alabama

我想选择水果1和2配对的次数。预期的结果将是

fruit1     fruit2      times_paired
apple      orange      3
grape      plum        1
kiwi       orange      2

我不确定如何在sql中查找对。我知道那会是

select fruit1, fruit2, count(*) from my_table order by count(*)

1 个答案:

答案 0 :(得分:2)

您必须group by对。

select fruit1,fruit2,count(*) 
from my_table 
group by fruit1,fruit2

如果需要对a,b之类的对与b,a进行计数时,请使用leastgreatest

select least(fruit1,fruit2),greatest(fruit1,fruit2),count(*) 
from my_table 
group by least(fruit1,fruit2),greatest(fruit1,fruit2)