Я пытаюсь создать запрос на рыночную корзину. Table_data извлекает все транзакции для всех товаров, совместно использующих корзину с Host_Category (категория 123 в данном случае); но текущий SQL, который я использую, дублирует продажи прикрепленных товаров, так как я делаю полное соединение таблицы с самим собой, и иногда в одной транзакции содержится более 1 предмета категории хостов (как показано в примере ниже):
Как мне изменить мой запрос для получения желаемого результата?
Мой запрос ниже:
SELECT Host_Category,Attached_Item
,Count(DISTINCT Trx_NBR || Location_NBR || Trx_Date) AS Shared_Trx_Count
,Sum(Host_Sales) AS Host_Sales
,Sum(Attached_Sales) AS Attached_Sales
FROM (SELECT a.Trx_NBR, a.Trx_Date, a.Location_NBR
,CASE WHEN a.Category IN (123) THEN '123' END AS Host_Category
,a.sales AS Host_Sales
,b.Item AS Attached_Item, b.sales AS Attached_Sales
FROM table_data a FULL JOIN table_data b
ON a.Trx_NBR = b.Trx_NBR AND a.Location_NBR = b.Location_NBR AND a.Trx_Date = b.Trx_Date
WHERE a.Category IN (123) ) AS c GROUP BY 1,2