我有一个类似于下表的表格:
id | name | direction |
--------------------------------------
1 Jhon Washington, DC
2 Diego Miami, Florida
3 Michael Orlando, Florida
4 Jenny Olympia, washington
5 Joe Austin, Texas
6 Barack Denver, Colorado我想要计算有多少人生活在一个特定的州:
Washington 2
Florida 2
Texas 1
Colorado 1我该怎么做呢?(顺便说一句,这只是一个带有学术观点的问题),提前谢谢!
发布于 2013-08-25 06:26:45
Postgres提供了函数split_part(),该函数将用分隔符分隔字符串。你想要第二部分(逗号后面的部分):
select split_part(direction, ', ', 2) as state, count(*)
from t
group by split_part(direction, ', ', 2);发布于 2013-08-25 06:17:53
最初,我会从方向域中获得状态。一旦你有了它,它就很简单了:
SELECT state, count(*) as total FROM initial_table group by state.要获得状态,一些依赖于dbms的函数是有用的。这取决于语言。
查询的可能伪代码(给定MySQL的substring_index这样的函数)为:
SELECT substring_index(direction,',',-1) as state, count(*) as total
FROM initial_table group by substring_index(direction,',',-1)编辑:如上所述,对于华盛顿州,查询应返回1。
https://stackoverflow.com/questions/18423558
复制相似问题