В SQL Я хочу получить, какой процент обращений к сайту приходил от каждого пользователя. Для этого мне нужно получить сумму столбца site hits
, но мой запрос использует GROUP By в другом столбце.Получите общее количество столбцов и общую сумму GROUP BY
Как я могу получить сумму для всего столбца, в дополнение к каждому user_id в GROUP BY?
набор данных:
User Page Hits Page
---- --------- ----
a 10 home
a 10 profile
b 8 home
b 2 profile
c 6 home
c 4 profile
Результат:
User Site Hits pct of total site hits
---- --------- ---------------
a 20 50%
b 10 25%
c 10 25%
Запрос:
SELECT
user,
SUM(page_hits) AS site_hits,
SUM(page_hits)/total_page_hits <-- How do I get sum of 'page hits' for total_page_hits ????
FROM hit_data
GROUP BY user
Можете ли вы использовать подзапрос так, как вы его показали? Я думал, что подзапрос должен быть частью оператора FROM или JOIN? –
Да, это правильный способ, о котором я говорил. Подзапросы могут использоваться в JOIN/WHERE или в SELECT в качестве столбца. – davidethell
Нет, его можно использовать для возврата скаляров практически в любом месте запроса. –