Задача в SQL помогите пожалуйста!!!

Mr_Nikolay
Дата: 09.01.2013 20:12:56
Задача в SQL. Есть таблица с колонками UserID (имя юзера), TimeUsers (указывает время проведенное на сайте, формат времени 2013:01:08:17:56:55), Datetime (день в который юзер был на сайте), UserApp (устройство с которого заходил юзер). За один день юзер мог заходить на сайт несколько раз с разным временем прибывания.
Нужно вывести по каждому юзеру суммарное время за конкретный день и с кого устройства заходил юзер.
Спасибо!
hallabud
Дата: 09.01.2013 20:48:10
Mr_Nikolay,

Какие типы данных у полей TimeUsers и Datetime ?
Akina
Дата: 09.01.2013 21:10:03
Mr_Nikolay
Нужно вывести по каждому юзеру суммарное время за конкретный день и с кого устройства заходил юзер.
А если он заходил два раза с компа и три раза с мобилы?
Arhat109
Дата: 09.01.2013 21:23:26
Akina,

и пару раз ногами в гости? :)

типовая группировка с агрегатным суммированием - мануал в руки... киньте ссылкой кто-нить... у меня под рукой щас нету.

Автор. Там надо что-то типа

SELECT дата, устройство, юзверь, время_в_интервал(SUM(время_в_сек(поле_время))) AS время_на_сайте
FROM табличка
GROUP BY дата, устройство, юзверь
HAVING время_на_сайте > 0
;

Как там называются поля, как называются конкретные функции и куда чего преобразовать - RTFM в помощь (ссылку на память не помню, а под рукой нет, надеюсь кинут).

"До кучи" можно в вывод и группировку добавить функций, преобразующих поле даты в нужную разбивку по дням и т.д. Тока одинаково! :)
Akina
Дата: 10.01.2013 00:28:37
Arhat109
и пару раз ногами в гости?
Вариант... так вот это в итоговом наборе должна быть одна строка, или по количеству устройств? я не знаю...
Mr_Nikolay
Дата: 10.01.2013 13:19:11
Извиняюсь за не очень правильное условие, вот пример таблицы которая у меня есть + начальная кверя:
select t.userSessionId, t.username, unix_timestamp(t2.datetimeStamp,'yyyy:MM:dd:HH:mm:ss')-unix_timestamp(t.datetimeStamp,'yyyy:MM:dd:HH:mm:ss')
from SessionLifecycle_Event_2013_01 t join SessionLifecycle_Event_2013_01 t2 on t.userSessionId = t2.userSessionId
where t2.event = 'Quit' and t.event = 'Login' and t.userSessionId <> '' or t2.event='Logout';
tanglir
Дата: 10.01.2013 13:22:51
Mr_Nikolay
where t2.event = 'Quit' and t.event = 'Login'
У юзера в день может быть только одна сессия? Если нет, то результаты будут совершенно неверные.
tanglir
Дата: 10.01.2013 13:23:51
tanglir
Mr_Nikolay
where t2.event = 'Quit' and t.event = 'Login'
У юзера в день может быть только одна сессия? Если нет, то результаты будут совершенно неверные.
всё, туплю уже.
usersessionid ведь наверняка является уникальным ид сессии :)
Mr_Nikolay
Дата: 10.01.2013 13:24:02
а да и все поля string
Mr_Nikolay
Дата: 10.01.2013 13:26:22
userSessionId каждый раз уникален и для зарегистрированного юзера, и для гостя