我有包含FEATURE_NAME
,STATE_ALPHA
,COUNTY_NAME
列和人口数据的表格代码 - 以及其他数据。
我需要选择FEATURE_NAME
和STATE_ALPHA
匹配的所有条目,COUNTY_NAME
不同。我还需要来自这些行的所有数据,而不仅仅是列出的那三行。
此外,我需要在输出列表中显示两个/所有这样的事件。请帮忙。
我尝试了内部联接,但它不能在同一个表上运行。我也尝试了以下脚本:
从fedcodes group by选择fedcodes。,count()num,FEATURE_NAME
,STATE_ALPHA
FEATURE_NAME
,STATE_ALPHA
有num> 1 ORDER BY fedcodes
。FEATURE_NAME
DESC
但是我不知道如何添加COUNTY_NAME
不相同的术语,它只输出一行,其中num列显示出现次数。
示例:
ID FEATURE_CLASS FEATURE_ID FEATURE_NAME CENSUS_CODE CENSUS_CLASS_CODE GSA_CODE OPM_CODE STATE_NUMERIC STATE_ALPHA COUNTY_SEQUENCE COUNTY_NUMERIC COUNTY_NAME DATE_CREATED PRIMARY_LATITUDE PRIMARY_LONGITUDE DATE_EDITED fips COUNTRY_NAME POPULATION_DATA city_county_allocate is_county
146627 Populated Place 1616849 Wyandotte 88900 P1 5310 265310163 26 MI 1 163 Wayne 1980-04-14 00:00:00 42.2142064 -83.1499239 03/20/2008 26163 US 25883 100 1
147139 Populated Place 1617956 Wyandotte 88890 U6 NULL NULL 26 MI 1 61 Houghton 1980-04-14 00:00:00 46.8899335 -88.8754114 NULL 26061 US 0 0 0
34 Populated Place 2195 Bumstead 8360 U6 NULL NULL 4 AZ 1 13 Maricopa 1980-02-08 00:00:00 33.5733726 -112.3568269 NULL 04013 US 0 0 0
- 从示例中可以看出,Wyandote位于两个县,因此有两个条目,一个是人口数据25883,另一个是人口数据0所以我需要这两个条目。而Bumstead只在一个县,所以我不需要选择。我希望这个例子能更好地解释一下。
答案 0 :(得分:4)
这里有一些伪代码可以帮助您入门。基本上你需要使用上面描述的规则将表连接回自身,然后返回你需要的任何字段。
SELECT ... -- Add all the field you need from both intances of your table below
FROM fedcodes T1 -- First instance of your table
INNER JOIN
fedcodes T2 -- Second instance of your table
ON T1.FEATURE_NAME = T2.FEATURE_NAME
AND T1.STATE_ALPHA = T2.STATE_ALPHA
AND T1.COUNTY_NAME <> T2.COUNTY_NAME
答案 1 :(得分:2)
尝试
SELECT f1.*
FROM fedcodes f1 JOIN
fedcodes f2 ON f1.feature_name = f2.feature_name
AND f1.state_alpha = f2.state_alpha
AND f1.county_name <> f2.county_name
<强> SQLFIddle 强>