2016-08-02 2 views
0

Ниже запрос, когда я исполняю дает мне результат, как показано ниже (SELECT
СЛУЧАЮ
КОГДА ProdName СОДЕРЖИТ («ААА») THEN «AAA»
КОГДА ProdName СОДЕРЖИТ («В») ТОГДА 'BBB'
ПРИ ProdName Contains ('CCC') THEN 'CCC'
КОГДА ProdName Contains ('DDD') Then 'DDD'
КОГДА ProdName Contains ('EEE') Then 'EEE'
КОГДА prodName CONTAINS ('FFF') THEN 'FFF'
WHEN prodName CONTAINS ('GGG') THEN 'ГГГ'
КОГДА ProdName Contains ('HHH') THEN 'HHH'
Else 'Другие'
КОНЕЦ КАК
ргой_пате,
EXACT_COUNT_DISTINCT (пользователя) AS Distinct_users
ОТ [туЬаЫе]
GROUP BY 1
ORDER BY 2 DESC
ИГНОРИРУЙТЕ СЛУЧАЙ)
Sub выбери в BigQuery с сазом

enter image description here


Ниже запроса, который аналогичен приведенному выше, но я дал подзапрос, чтобы опустить записи, если PROD_NAME = aaa возвращает другой результат, где он объединяет отдельных пользователей, имеющих значение 1, другим и показывает результат diff.

ВЫБОР PROD_NAME, EXACT_COUNT_DISTINCT (пользователи) AS Distinct_users
ИЗ
(SELECT
ПРИМЕР
ПРИ ProdName Contains ('ААА'), тогда ААА
КОГДА ProdName Contains ('BBB') ТОГДА «ВВВ '
ПРИ ProdName Contains (' CCC ') THEN 'CCC'
КОГДА ProdName Contains (' DDD ') THEN 'DDD'
КОГДА ProdName Contains (' EEE ') Then 'EEE'
КОГДА ProdName СОДЕРЖИТ (' FFF ') THEN 'FFF'
ПРИ ProdName Contains ('GGG'), затем 'GGG'
КОГДА ProdName Contains ('HHH') Then 'HHH'
ИНАЧЕ 'других'
END AS
ргой_пате,
EXACT_COUNT_DISTINCT (пользователь) КАК Distinct_users
ОТ [туЬаЫе]
GROUP BY 1
ORDER BY 2 DESC
ИГНОРИРУЙТЕ CASE)

enter image description here

Пожалуйста, дайте мне знать, как решить проблему. Мне нужен второй запрос, чтобы обеспечить тот же вывод, что и первый, но мне не нужен PROD_NAME = 'AAA'.Я включил в сазе, потому что моя таблица содержит несколько данных, таких как «ААА», «ААА», «ааа-в», «AAA» и т.д., и я группируя все вместе, чтобы показать совокупную стоимость

ответ

1

I нужен второй запрос, чтобы обеспечить такой же вывод, как первый, но мне не нужно PROD_NAME = «ААА»

как насчет просто добавив предложения HAVING, как показано ниже

SELECT 
    CASE 
    WHEN prodName CONTAINS('AAA') THEN 'AAA' 
    WHEN prodName CONTAINS('BBB') THEN 'BBB' 
    WHEN prodName CONTAINS('CCC') THEN 'CCC' 
    WHEN prodName CONTAINS('DDD') THEN 'DDD' 
    WHEN prodName CONTAINS('EEE') THEN 'EEE' 
    WHEN prodName CONTAINS('FFF') THEN 'FFF' 
    WHEN prodName CONTAINS('GGG') THEN 'GGG' 
    WHEN prodName CONTAINS('HHH') THEN 'HHH' 
    ELSE 'Others' 
    END AS 
    PROD_NAME, 
EXACT_COUNT_DISTINCT(user) AS Distinct_users 
FROM [mytable] 
GROUP BY 1 
HAVING PROD_NAME <> 'AAA' 
ORDER BY 2 DESC 
IGNORE CASE 
Смежные вопросы