#mysql #sql
#mysql #sql
Вопрос:
Напишите запрос, чтобы получить показатель посещаемости для каждого приложения в 2019 году. Схема таблицы событий — app_id (целое число), event_id (строка: «показ», «щелчок» и отметка времени (datetime). Мой запрос приведен ниже, но я не уверен, как фильтровать по показу или щелчку, чтобы рассчитать показатель посещаемости.
SELECT app_id, COUNT(event_id = ‘click’ ) / COUNT (event_id = ‘impression’) as click_through_rate
FROM events
WHERE EXTRACT(YEAR from timestamp) = 2019
GROUP BY app_id
ORDER BY click_through_rate DESC
Ответ №1:
Я думаю, вы хотите sum()
:
SELECT app_id,
SUM(event_id = ‘click’ ) / SUM(event_id = ‘impression’) as click_through_rate
FROM events
WHERE EXTRACT(YEAR from timestamp) = 2019
GROUP BY app_id
ORDER BY click_through_rate DESC;
COUNT()
подсчитывает количество значений, не являющихся NULL
значениями для выражения. Вам нужна сумма, где выражение true
— следовательно SUM()
, вместо COUNT()
.
Комментарии:
1. ok имеет смысл, но является ли это правильным синтаксисом для получения значений click и impression?
2. @EmilyKuo . , , Это должно подсчитать строки с этими значениями в MySQL.