Альтернативы GROUP BY - PullRequest
       1

Альтернативы GROUP BY

0 голосов
/ 28 июня 2019

Я ищу альтернативу для удаления дубликатов для столбца псевдонимов.Я знаю, что не могу использовать функцию GROUP BY для псевдонима, но я не знаю, как избавиться от дубликатов в этом столбце.

SELECT        
(select Sites.SiteZipCode 
FROM Sites 
WHERE Sites.SiteName = TransportationPolicies.DestinationSite) AS DESTZIP1,
(SELECT        Sites.SiteZipCode
FROM Sites 
WHERE Sites.SiteName = TransportationPolicies.SOURCESite) AS SOURCESITE1,
((select Sites.SiteZipCode FROM Sites WHERE Sites.SiteName = TransportationPolicies.DestinationSite) + '_' + (SELECT  Sites.SiteZipCode FROM Sites WHERE Sites.SiteName = TransportationPolicies.SOURCESite)) 
AS CONCZIP, TransportationPolicies.SourceSite, TransportationPolicies.DestinationSite
FROM TransportationPolicies
GROUP BY CONCZIP

Ответы [ 2 ]

0 голосов
/ 28 июня 2019

Встроенные подзапросы крайне редки.Вам нужно всего два соединения с Sites, чтобы получить нужные вам столбцы.В дополнение к наблюдениям Smor по поводу форматирования псевдонимы таблиц также будут иметь большое значение для упрощения вашего кода.

Это не проверено, поскольку у нас нет данных для работы, но я считаю, что вы должны вернуть результаты, которые вы 'ищу.В зависимости от ваших данных вам может потребоваться LEFT JOIN вместо.

SELECT DISTINCT
  dest.SiteZipCode AS DESTZIP1,
  src.SiteZipCode AS SOURCESITE1,
  dest.SiteZipCode + '_' + src.SiteZipCode AS CONCZIP, 
  tpol.SourceSite, 
  tpol.DestinationSite
FROM 
  TransportationPolicies AS tpol
JOIN
  Sites as dest
    ON dest.SiteName = tpol.DestinationSite
JOIN
  Sites as src
    ON src.SiteName = tpol.SOURCESite;
0 голосов
/ 28 июня 2019

Не ответ - просто демонстрация того, как форматирование / пробелы увеличивают способность читать и понимать ваш запрос

SELECT        
   (select Sites.SiteZipCode FROM Sites 
    WHERE Sites.SiteName = TransportationPolicies.DestinationSite) AS DESTZIP1,

   (SELECT Sites.SiteZipCode FROM Sites 
    WHERE Sites.SiteName = TransportationPolicies.SOURCESite) AS SOURCESITE1,

   ((select Sites.SiteZipCode FROM Sites WHERE Sites.SiteName = TransportationPolicies.DestinationSite) 
   + '_' 
   + (SELECT  Sites.SiteZipCode FROM Sites WHERE Sites.SiteName = TransportationPolicies.SOURCESite)) 
   AS CONCZIP, 

   TransportationPolicies.SourceSite, 
   TransportationPolicies.DestinationSite
FROM TransportationPolicies
GROUP BY CONCZIP
ORDER BY CONCZIP; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...