#sql #group-by #count #google-bigquery
# #sql #группировать по #подсчет #google-bigquery
Вопрос:
У меня есть пример данных, как показано ниже.
Я хочу вычислить промежуточное общее число и общее число.
Вот что я хочу:
Как я могу реализовать это в BigQuery как можно проще?
Спасибо миллион!
Ответ №1:
Агрегация плюс групповая агрегация:
SELECT
product,
COUNT(*),
SUM(COUNT(*)) OVER ()
FROM test_table
GROUP BY product
Комментарии:
1. Мне нравится этот ответ, выглядит очень просто. Спасибо!
Ответ №2:
We can use an inline view of the same. Looks pretty simple.
create table test_table
(
orders varchar2(20),
userid int
)
insert into test_table values ('Phone', 1);
insert into test_table values ('Computer', 2);
insert into test_table values ('Phone', 3);
insert into test_table values ('Computer', 4);
insert into test_table values ('Computer', 5);
**select orders,count(1) as user_count,
(select count(*) from test_table) as total_user_count
from test_table
group by orders**
Ответ №3:
что ж, я собираюсь ответить на этот вопрос, но, пожалуйста, не ожидайте, что кто-нибудь ответит вам в следующий раз, потому что просто «мы этого здесь не делаем» мы помогаем людям, мы не выполняем там домашнюю работу. Однако это ваши запросы: чтобы получить номер телефона пользователей, вы должны ввести запрос, подобный этому:
SELECT COUNT(order) FROM (table-name) WHERE order LIKE "phone"
Чтобы получить количество пользователей компьютера, вам нужно ввести запрос, подобный этому:
SELECT COUNT(order) FROM (table-name) WHERE order LIKE "computer"
я не понял пример, который вы только что привели об общем количестве пользователей, поэтому мне жаль, что я не могу вам в этом помочь, возможно, если вы будете более понятны.
Комментарии:
1. Ну,
order LIKE "phone"
должно быть"order" = 'phone'
. Но есть ГРУППА ПО
Ответ №4:
Select Distinct [Order]
,COUNT([Order]) [User Count]
,(Select Count([Order]) FROM [orders]) [Total User Count]
FROM [orders]
GROUP BY [Order]
ORDER BY [Order] DESC
Комментарии:
1. Хотя этот код может отвечать на вопрос, предоставление дополнительного контекста относительно того, почему и / или как этот код отвечает на вопрос, повышает его долгосрочную ценность.