我有表格联邦代码,列FEATURE_NAME
,STATE_ALPHA
,COUNTY_NAME
和人口数据 - 以及其他数据。我需要选择FEATURE_NAME
和STATE_ALPHA
匹配的所有条目,并且COUNTY_NAME
不同。我还需要来自此类行的所有数据,而不仅仅是列出的三个。此外,我需要在输出列表中显示两个/所有/此类事件。请帮忙。
我已经尝试过内部连接,但它无法在同一张桌子上工作。我也尝试了以下脚本:
从联邦代码组中选择联邦代码、计数(( 编号、FEATURE_NAME
、STATE_ALPHA
FEATURE_NAME
,STATE_ALPHA
fedcodes
的 1 个订单数> 个。FEATURE_NAME
DESC
但是我不知道如何添加COUNTY_NAME
不一样的术语,它只输出一行,数字列显示出现次数。
例:
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
-正如您从示例中所看到的,Wyandotte 位于两个县,因此有两个条目,一个是人口数据 25883,另一个是人口数据 0 所以我需要这两个条目。而且邦斯特德只在一个县,所以我不需要选择那个。我希望这个例子能更好地解释事情。
这里有一些 psedo 代码可以帮助您入门。基本上,您需要使用上面描述的规则将表连接回自身,然后返回所需的任何字段。
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
尝试
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