Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Вопрос-Ответ Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2]      все
 Re: SQL запрос с условием вероятности  [new]
exp98
Member

Откуда:
Сообщений: 3008
Krew21, можно без оконных. Слышал про FROM tab1 as A, tab1 as B, tab1 as C ....?
рядом нет людей
не в тайге живём, можно не рядом, немного денег и небольшой треннинг. Заочно в твоём случае не получится.

Начни с примера таблицы, 20-30 строк. Не знаю уж как там клиент в месяц несколько раз или ровно 1 ...

Напиши алгоритмически решение на Паскале, Бэйсик, Питоне, на любом процедурном языке. ЧТ из БД на псевдокоде,т.е. имитировать. Чтобы понимать полностью чего надо.

Потренируйся в составлении простых плоских запросиков, касающихся темы.
Затем посложнее. Затем приближайся к своим потребностям.

Или в раздел Работа.
4 дек 19, 13:15    [22031999]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос с условием вероятности  [new]
Krew21
Member

Откуда:
Сообщений: 12
exp98,

Понял, спасибо

Последняя попытка:

SELECT event_timestamp, count (user_id), count (user_id), FROM Table as A, Table as B, Table as C
WHERE
(count (user_id)= ‘date month(event_timestamp) = month(now()) and year(event_timestamp) = year(now())’),
(count (user_id)= ‘date_format(event_timestamp, '%Y%m') = date_format(date_add(now(), interval +1 month), '%Y%m'’ and event_name='registration')
Group by event_timestamp
Having C/B * 100%
5 дек 19, 11:19    [22032903]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: SQL запрос с условием вероятности  [new]
sasha22
Member

Откуда:
Сообщений: 2
exp98, здравствуйте! Мне нужно обсудить этот вопрос, если вы не против связаться лично, дайте знать.
13 дек 20, 16:18    [22247269]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос с условием вероятности  [new]
JuliaYarr
Member

Откуда:
Сообщений: 6
Добрый день.
Помогите пожалуйста с запросом:

Турист в каждом городе townуезжает на поезде ближайшим рейсом в город town2.
Для каждого города town найти вероятность того, что турист окажется в городе town2.

Исходные данные:

Town1	Town2	Time1

Москва	Томск	7:00:00
Москва	Омск	10:00:00
Омск	Томск	12:00:00
Томск	Москва	7:00:00
Томск	Омск	8:00:00
Томск	Москва	9:00:00


Результат должен быть таким:

Town1	Town2	pct

Москва	Томск	87.50
Москва	Омск	12.50
Омск	Томск	100.00
Томск	Москва	95.83
Томск	Омск	4.17


Я вышла к тому, что для города с большим временем вероятность можно найти так:

разница в минутах между отправлениями*100/1440
(например. для рейса Москва-Омск будет так: 3*60*100/1440)

Но вот как вычислить для всех сразу никак не соображу.
27 май 21, 11:11    [22327849]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос с условием вероятности  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 21178
JuliaYarr
Результат должен быть таким:
Последняя запись - неверная, должно быть вдвое больше.
27 май 21, 13:04    [22327930]     Ответить | Цитировать Сообщить модератору
 Re: SQL запрос с условием вероятности  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 21178
Опс, неверно посчитал. Да, всё верно. И с чего я решил, что в сутках 12 часов?

WITH 
cte1 AS ( SELECT town1, 
                 town2, 
                 time1, 
                 ROW_NUMBER() OVER (PARTITION BY town1 ORDER BY time1 DESC) rn,
                 MIN(time1) OVER (PARTITION BY town1) mintime
          FROM test ),
cte2 AS ( SELECT town1, 
                 town2, 
                 time1
          FROM test
          UNION ALL
          SELECT town1, 
                 town2, 
                 '00:00:00'
          FROM cte1
          WHERE rn = 1 AND mintime > '00:00:00' ),
cte3 AS ( SELECT town1, 
                 town2, 
                 time1,
                 COALESCE(LEAD(time1) OVER (PARTITION BY town1 ORDER BY time1), '24:00:00') time2
          FROM cte2 )
SELECT town1, town2, SUM(TIME_TO_SEC(TIMEDIFF(time2, time1)))/864 percent
FROM cte3
GROUP BY 1, 2
ORDER BY 1, 2

https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=91b063148553df072c669098ff4813a1
27 май 21, 13:26    [22327939]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2]      все
Все форумы / Вопрос-Ответ Ответить