Объединить, объединить, объединить 2 разные строки в 1 одну строку Google SQL | Большой запрос

#sql #google-bigquery

#sql #google-bigquery

Вопрос:

У меня есть следующая таблица:

 | post_state | total_posts |
| opened     | 1000        |
| completed  | 2000        |
  

Я использую этот запрос, чтобы получить приведенный выше результат:

 SELECT post_state,
    SUM(total_threads) as total_posts,
    FROM data.table
    WHERE post_state IN ('opened', 'completed')
    GROUP BY post_state
  

Тем не менее, я хотел бы объединить обе строки в одну, что-то вроде этого:

 | post_state | total_posts |
| all_posts  | 3000        |
  

Как я могу вывести это в Google SQL?
Я новичок в мире SQL, рад, если вы могли бы мне помочь 🙂

Заранее спасибо за помощь.

Ответ №1:

Просто удалите GROUP BY post_state :

 SELECT 
  'all_posts' as post_state,
  SUM(total_threads) as total_posts,
FROM data.table
WHERE post_state IN ('opened', 'completed')
  

Комментарии:

1. Блестяще! Спасибо, Сергей!

Ответ №2:

Другой вариант

 SELECT 
  'all_posts' as post_state,
  SUM(IF(post_state IN ('opened', 'completed'), total_threads, 0)) as total_posts,
FROM data.table