Я знаю достаточно SQL, чтобы написать базовые SELECT
и UPDATE
s.Я борюсь с JOIN
s
Я хочу обновить поле 'county' в таблице преступлений.Я использую таблицу zip_xref, которая даст мне названия округов.Проблема в том, что несколько сотен городов находятся в нескольких округах, и я хочу обновить таблицу с наиболее распространенным округом, поэтому мой подзапрос должен иметь способ ранжировать округа по размеру.
Я имеюнаписал это, чтобы найти названия округов, ранжированных по количеству почтовых индексов в каждом округе.
SELECT DISTINCT CountyName AS counties, COUNT(*) AS numZips
FROM Zip_XRef WHERE (CityName = 'Aurora') AND (StateName = 'Colorado')
GROUP BY CountyName ORDER BY numZips DESC
Я знаю, что это ОБНОВЛЕНИЕ не работает, это всего лишь идея.
UPDATE crime_table_08 AS c
SET county =
(SELECT TOP 1 DISTINCT CountyName, COUNT(*) AS numZips
FROM Zip_XRef AS z
WHERE RTRIM(z.StateName) = RTRIM(c.State) AND RTRIM(z.CityName) = RTRIM(c.city)
GROUP BY CountyName ORDER BY numZips DESC
)
Я думаю, что мне нужно будет создать временную таблицу, а затем вызватьэто обновить с, и я не могу полностью разобраться в логике.Любая помощь с благодарностью.
ИЛИ, Кто-нибудь думает, что есть лучший способ?