powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помощь в написании правильного запроса в MySQL.
7 сообщений из 7, страница 1 из 1
Помощь в написании правильного запроса в MySQL.
    #40087330
dim086
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем добрый день!

Прошу помочь в решении одной задачки. Никак не удается написать правильно запрос.

Задача - Посчитать процент тех, кто послушал хотя бы два трека по рекомендации друзей, от всех пользователей?

Скрин таблицы во вложении.

Название таблицы - listen_table.

В таблице лежат следующие данные:

likes - стандартный палец вверх

likes_1-likes_3 - оценка песни по трем критериям (бит, слова, музыка)

source_id - имеет 4 значения:

1 - песня из рубрики популярное или подборки приложений
2 - песня из сохраненных
3 - песня из рекомендаций
4 - песня от друзей
...
Рейтинг: 0 / 0
Помощь в написании правильного запроса в MySQL.
    #40087447
Gluck99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dim086
Никак не удается написать правильно запрос.
Если не удаётся, значит, какие-то варианты имеются. Их надо приводить (желательно с подсветкой кода), иначе вас будут считать за иждивенца.

Решите по отдельности три задачи (тремя разными запросами):
1) получить количество пользователей, кто прослушал два трека по рекомендации
2) получить количество всех пользователей
3) посчитать процент X от Y

И финальный запрос станет очевидным.
...
Рейтинг: 0 / 0
Помощь в написании правильного запроса в MySQL.
    #40087464
dim086
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Gluck99,

Задаю такой запрос.

Select count(distinct user_id)/(select count(distinct user_id) From listen_table) * 100 as prc
FROM listen_table
Where source_id=4

Ответ. 35 %

Задаю такой запрос.

Select count(user_id)/(select count(user_id) From listen_table) * 100 as prc
FROM listen_table
Where source_id=4

Ответ. 20%

Но правильный ответ 8%
Как его получить я не понимаю. Что я упускаю?
...
Рейтинг: 0 / 0
Помощь в написании правильного запроса в MySQL.
    #40087473
dim086
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Либо еще так пробую.

select (select count(distinct user_id) from listen_table where user_id in (select user_id from listen_table group by user_id having count(user_id) > 2) and source_id = 4) / count(*) * 100 as prc
from listen_table

Ответ 9%.

Правильный если прям точно, то - 8,11%
...
Рейтинг: 0 / 0
Помощь в написании правильного запроса в MySQL.
    #40087503
Gluck99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dim086, я заметил, что главное правило 90% просящих здесь совета - это игнорировать любые советы.
...
Рейтинг: 0 / 0
Помощь в написании правильного запроса в MySQL.
    #40087504
dim086
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Gluck99,

Уже все. Спасибо. Решил.
Вот верный запрос.

select (select count(*) from (select user_id from listen_table where source_id = 4 group by user_id having count(user_id) > 1) t) / count(distinct user_id) * 100 as prc from listen_table
...
Рейтинг: 0 / 0
Помощь в написании правильного запроса в MySQL.
    #40087508
Gluck99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
count(distinct user_id)

Оптимальность такой конструкции под вопросом.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помощь в написании правильного запроса в MySQL.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]