【发布时间】:2020-09-26 20:45:37
【问题描述】:
我不确定这里必须有什么标题才能正确反映我的问题,我只能描述我想要的。
有一个带有字段的表:
id, name, city
还有下一行:
1 John London
2 Mary Paris
3 John Paris
4 Samy London
我想得到这样的结果:
London Paris
Total 2 2
John 1 1
Mary 0 1
Samy 1 0
因此,我需要获取名称的所有唯一值并为另一个字段(城市)的唯一值找到适当的数量 我也想得到每个城市的总量
简单的方法是:
1)获取唯一名称列表
SELECT DISTINCT name FROM table
2)获取独特城市列表
SELECT DISTINCT city FROM table
3)为每个名字和城市创建一个查询
SELECT COUNT(city) FROM table WHERE name = some_name AND city = some_city
4)求总数:
SELECT COUNT(city) FROM table WHERE name = some_name
(我没有测试这些查询,所以这里可能有一些错误,但这只是为了说明想法)
因为有 3 个名称和 2 个城市 -> 3 * 2 = 6 次查询数据库
但是对于具有 100 个城市和 100 个名称的表 -> 100 * 100 = 10 000 次对数据库的查询 而且可能需要很长时间才能完成。
此外,名称和城市可能会更改,因此,我无法使用预定义的名称或城市创建查询,因为它每天都是新的,因此,可能是莫斯科、都灵和柏林,而不是伦敦和巴黎。名字也是一样。
如何使用sqlite对原始表进行一二查询得到这样的表?
(sqlite: 我是为安卓做的)
【问题讨论】:
标签: sql sqlite group-by count pivot