#sqlite #yelp
#sqlite #yelp
Вопрос:
Я работаю с базой данных Yelp и хотел бы выполнить запрос, используя только таблицу user:
- Вычислите количество лет, в течение которых пользователь был в Yelp. Те, кто работает на платформе в течение 1 года, будут относиться к группе «молодые», те, кто работает на платформе не менее 5 лет, будут относиться к группе «старые»;
- Для этих групп я также хочу рассчитать среднее количество отзывов, написанных за год (review_count, деленное на количество лет в Yelp).
- Для «старой» группы я хочу разделить количество поклонников на review_count (и найти соотношение поклонников на обзор).
- Для «молодой» группы я хочу умножить их текущее среднее количество обзоров в год на 5, а затем умножить это число на соотношение поклонников на обзор «старой» группы.
Я новичок (как вы, очевидно, можете сказать) и перепробовал все, что знаю, но я не могу найти способ заставить это работать. Я создал операции date и math, которые затем попытался использовать в операторах case, но это не сработало.
Какие-нибудь полезные советы, пожалуйста?
Спасибо!
Кстати, это то, что я пробовал до сих пор:
SELECT COUNT(id) AS number_of_users
,SUM(review_count) / SUM(fans) AS reviews_fan_ratio
,(DATE('now') - yelping_since) AS years_on_yelp
,SUM(review_count) / years_on_yelp AS reviews_per_year
,CASE
WHEN years_on_yelp <= 5 THEN 'young'
WHEN years_on_yelp > 5 THEN 'old'
END age
FROM user
GROUP BY age;
Комментарии:
1. Пожалуйста, покажите нам, что вы сделали до сих пор (SQL).
2. Привет, Оливье, спасибо за ответ. Я только что добавил фрагмент кода.
3. Как это «не работает»? Какие ошибки есть?
4. Я внес изменения в код, чтобы представить столько, сколько я хотел достичь с помощью запроса. Ошибка, которую я получаю, это «нет такого столбца: years_on_yelp», который я хотел бы использовать в своем операторе case. После решения этой проблемы мне все равно нужно будет выполнить еще пару математических операций, но они будут включать результаты других вычислений, в отличие от столбцов, изначально присутствующих в таблице.
5. Вы знаете, очень сложно читать код с маленькой картинки и постоянно переключаться между ним и вашим сообщением. Не могли бы вы добавить свою структуру таблицы в виде текста, то есть вывода команды
.schema
или.schema user
в программе sqlite3?