У меня есть такая таблица
Queries Query Cat. Item Name Item Cat. Item Sold Stock Avail.
iPhone 6 Mobile Phone iPhone 6 Mobile Phone 20 10
iPhone 6 Mobile Phone iPhone 6 XS Mobile Phone 10 20
iPhone 6 Mobile Phone iPhone 6 S Mobile Phone 5 20
iPhone 6 Phone Accessories iPhone 6 S Case Phone Accessories 200 100
iPhone 6 Phone Accessories iPhone 6 Earphone Earphone 150 200
iPhone 6 Phone Accessories iPhone 6 Charger Phone Wall Charger 100 250
iPhone 6 Mobile Phone iPhone 6 S Plus Mobile Phone 15 15
И мне нужна таблица, как показано ниже, где:
- Я хочу подсчитать, сколько элементов СОДЕРЖИТ запросы ключевых слов по определенным ключевым словам (не с точным соответствием). В Excel использовалось COUNTIFS (имя_элемента, (имя запроса), array_item_cat, query_cat)
- Я хочу суммировать общее количество товаров, проданных по товару, который СОДЕРЖИТ запросы по ключевым словам по определенным ключевым словам (не с точным соответствием). В Excel использовалось СУММЕСЛИМН (проданный_элемент_массива, имя_элемента, (имя запроса), элемент_массива_кат, запрос_кат)
- Я хочу суммировать общий оставшийся доступный запас по элементу, который СОДЕРЖИТ запросы ключевых слов по определенным ключевым словам (не с точным соответствием). В Excel использовалось СУММЕСЛИМН (array_stock_avail, item_name, (имя запроса), array_item_cat, query_cat)
Это таблица, которую я хочу:
Queries Query Cat. Item Count Total Item Sold Total Stock
iPhone 6 Mobile Phone 4 50 65
iPhone 6 Phone Accessories 1 200 100
И я использовал эти запросы:
And I was using this queries:
SELECT queries_keyword
,COUNT(CASE WHEN item_name LIKE queries_keyword AND item_cat = query_cat THEN 1 END) AS count_item_queries
,SUM(CASE WHEN item_name LIKE queries_keyword AND item_cat = query_cat THEN item_sold END) AS Total Item Sold
,SUM(CASE WHEN item_name LIKE queries_keyword AND item_cat = query_cat THEN stock_available END) AS Total Stock
FROM my_table
GROUP BY queries_keyword
Я использовал LIKE, чтобы он не только показывал точное совпадение, как при использовании IN или =, но LIKE необходимо использовать подстановочный знак '%%' для работы с любым именем элемента, которое СОДЕРЖИТ, и выше логики запроса, LIKE функция становится такой же, как IN или - потому что я не использую подстановочные знаки.
Кстати, я не использую подстановочный знак из-за того, что существуют миллионы запросов к данным и миллионы элементов, поэтому я хочу, чтобы он автоматически подсчитывал и суммировал для меня, а не вводил его один за другим, используя подстановочный знак '%%'.
Может ли кто-нибудь помочь предложить лучший и точный запрос для этой проблемы? Я новичок в использовании SQL, избавьте меня :(