SQL: как получить больше информации из оператора GROUP BY - PullRequest
0 голосов
/ 05 августа 2010

Рассмотрим следующий оператор SQL:

SELECT 
invoice.customer_name, 
invoice.customer_id, 
invoice.shop_location,
sum(invoice.cost)
FROM invoice
GROUP BY
invoice.customer_name, invoice.customer_id, invoice.shop_location

Что можно сделать с оператором, чтобы определить, какие строки будут идентичны другим строкам, если бы не их значение invoice.shop_location?

Ответы [ 2 ]

2 голосов
/ 05 августа 2010

Попробуйте это - Удаление Invoice.ShopLocation

SELECT  
invoice.customer_name,  
invoice.customer_id,  
sum(invoice.cost) 
FROM invoice 
GROUP BY 
invoice.customer_name, invoice.customer_id

Это дает вам все строки, которые соответствуют остальным полям

1 голос
/ 05 августа 2010
Select customer_name, Customer_id, count(Shop_location) from
(
    SELECT  
        invoice.customer_name,  
        invoice.customer_id,  
        invoice.shop_location, 
        sum(invoice.cost) 
    FROM invoice 
    GROUP BY 
        invoice.customer_name, 
        invoice.customer_id,
        invoice.shop_location 
 )
 Group by customer_name, Customer_id
 Having    count(Shop_location) > 1

Приведенный выше запрос даст вам комбинацию имени клиента и идентификатора, которые имеют более одного местоположения магазина

Примечание: я не уверен, оптимизировано ли это

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...