2017-01-03 4 views
0

У меня есть много одиночных адресов, которые имеют разные значения Sq_ft (это не должно быть). Я хочу проанализировать столбцы, которые имеют разные значения для Sq_Ft для одного и того же адреса. Что я могу добавить к предложению where, которое поможет мне в этом? Я попытался добавить отдельный синтаксис с Sq_ft, но бесполезный.Различные значения для столбца

Пример:

Address of New Home      Sq_Ft 
1234 Obama Drive       2,578 
1234 Obama Drive       2,586 

select "Address_of_New_Home","Sq_Ft" 
from "Amazon".salesdatapcr 
where "Sq_Ft" <> 
order by 1 
+1

Выполните автообъединение по адресу затем сравните <> sq_ft. 'выберите A.« Address_of_New_Home », A.« Sq_Ft » из« Amazon ».salesdatapcr A INNER JOIN« Amazon ».salesdatapcr B на A.« Address_of_New_Home »= B.« Address_of_New_Home »и A.Sq_Ft <> B. Sq_Ft заказать по 1' – xQbert

ответ

3

Использование EXISTS оператора и коррелированные подзапросы:

select "Address_of_New_Home","Sq_Ft" 
from "Amazon".salesdatapcr t1 
where EXISTS (
    SELECT null from "Amazon".salesdatapcr t2 
    WHERE t1."Address_of_New_Home" = t2."Address_of_New_Home" 
    and t1."Sq_Ft" <> t2."Sq_Ft" 
) 
order by 1 
+0

Я не знаю, какой из них отметить правильно. Оба являются удивительными ответами. –

+0

Если вы не знаете, просто переверните монету, чтобы решить, какой ответ поставить. – krokodilko

2

Это список строк из таблицы, для которой существует более одного вхождений адреса с различными sq_ft:

SELECT salesdt.* 
FROM "Amazon".salesdatapcr salesdt 
JOIN (
    SELECT 
    "Address_of_New_Home" AS home_address 
    FROM 
    "Amazon".salesdatapcr 
    GROUP BY 1 
    HAVING COUNT(DISTINCT "Sq_Ft") > 1 
) multisqft ON 
    salesdt."Address_of_New_Home" = multisqft.home_address 
ORDER BY multisqft.home_address 

Вы можете точно также использовать EXISTS или IN для этого. ORDER есть, чтобы сделать вещи более ясными.

+0

Я не знаю, какой из них следует отметить правильно. Оба являются удивительными ответами. –

Смежные вопросы