Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
alec1024

Строковые данные..... как реализовать

11.11.2010, 12:23. Показов 1158. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
День добрый, помогите доделать небольшой запросик.
Есть таблица в которой хранятся события и пользователи совершившие это событие плюс дата события.
Мне необходимо вытащить количество событий для каждого пользователя, за промежуток дат и разбить это на промежутки дат(желательно и часов).Возможно можно решить datediff ,но пока не могу никак реализовать это.Чтобы выглядело как-то так:

пользователь 20101101 20101102 20101103 ............ Всего
ххх 2 3 7 ............ 12

Вот что получилось(к сожалению выводит только общее количество):

DECLARE @charACT VARCHAR(25)
DECLARE @dateDATE_START DATETIME
DECLARE @dateDATE_END DATETIME
SET @charACT= 'ADJUST'
SET @dateDATE_START = '20101101'
SET @dateDATE_END = '20101110'
select
distinct UserID,
count (action) as [NUMBER]
from rf_log_all where Action = @charACT
AND DATE_TIME between @dateDATE_START and @dateDATE_END
group by userid
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.11.2010, 12:23
Ответы с готовыми решениями:

Строковые литералы, не пойму как реализовать
В произвольно взятом предложении вывести на экран все слова, начинающиеся на гласную букву.

Строковые данные
Всем привет) Задание: "Удалить из текста слова, которые заканчиваются на а." Вот написал самое начало, не могу понять как искать эти...

Строковые данные
Всем привет) Можете пож. подсказать что делает функция !strchr самая первая, и memmove и p += n; #include "stdafx.h" ...

4
 Аватар для devart dbforge
134 / 119 / 0
Регистрация: 30.06.2010
Сообщений: 221
11.11.2010, 17:49
День добрый,

Используя Ваши переменные получится где-то так. Группировка по дням и всего за период. Если надо еще более детально по часам, выдерните из DATETIME не только дату, но и часы.

select
userid,
isnull(convert(varchar(10),date_time,104 ),'Всего') as Period,
count(*) as Action_Count
from
dbo.rf_log_all
where
Action = @charACT and
Date_Time between @dateDATE_START and @dateDATE_END
group by
userid,
convert(varchar(10),date_time,104) with rollup
having
(userid is not null and date_time is not null) or
(userid is not null and date_time is null)
0
alec1024
12.11.2010, 08:46
Цитата Сообщение от devart dbforge Посмотреть сообщение
День добрый,

Используя Ваши переменные получится где-то так. Группировка по дням и всего за период. Если надо еще более детально по часам, выдерните из DATETIME не только дату, но и часы.

select
userid,
isnull(convert(varchar(10),date_time,104 ),'Всего') as Period,
count(*) as Action_Count
from
dbo.rf_log_all
where
Action = @charACT and
Date_Time between @dateDATE_START and @dateDATE_END
group by
userid,
convert(varchar(10),date_time,104) with rollup
having
(userid is not null and date_time is not null) or
(userid is not null and date_time is null)


Только тогда придется указывать в группировке и date_time из-за чего он просто разобьет запрос на единичное событие каждый день.
 Аватар для devart dbforge
134 / 119 / 0
Регистрация: 30.06.2010
Сообщений: 221
12.11.2010, 10:20
Цитата Сообщение от alec1024 Посмотреть сообщение
Только тогда придется указывать в группировке и date_time из-за чего он просто разобьет запрос на единичное событие каждый день.
А вот так?

select
userid,
isnull(date_time,'Всего') as Period,
count(*) as Action_Count
from
(select userid,action,convert(varchar(10),date_t ime,104)+' '+cast(datepart(hh,date_time) as varchar(2)) as date_time from dbo.rf_log_all) s
where
Action = @charACT and
Date_Time between @dateDATE_START and @dateDATE_END
group by
userid,
date_time with rollup
having
(userid is not null and date_time is not null) or
(userid is not null and date_time is null)
0
 Аватар для Lucius Kain
129 / 129 / 22
Регистрация: 10.11.2010
Сообщений: 313
13.11.2010, 15:23
T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
declare @div_count int= 10,
        @div_break float,
        @st_date datetime = '2010-01-01 00:00',
        @en_date datetime = '2010-11-11 23:00'
        
set @div_break = (cast(@en_date  as float)- cast(@st_date as float))/cast(@div_count as float)
print @div_break;
with periods_cte(num, st_date, en_date)
as
(select 1, @st_date, @st_date + @div_break
 union all
 select num + 1, st_date + @div_break, en_date + @div_break
 from periods_cte
 where num < @div_count)
select p.num, e.user_id, count(e.id)
from t_event e
join periods_cte p
     e.e_date between p.st_date and p.en_date
group by p.num, e.user_id
вот такой вот запросик, бьет интервал на равные периоды (в переменной div_count) и выводит соответственно то, что нужно номер периода, пользователя и кол-во событий.

P/S Если установить интервал равный кол-ву часов в диапазоне дат, выведет почасовую диаграмму.

На здоровье
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.11.2010, 15:23
Помогаю со студенческими работами здесь

Строковые данные
Заменить все восклицательные знаки («!») на символ «*», а символ «точка» («.») – многоточием (три точки «...»)

Строковые данные
Здравствуйте! Дали задачу: Заполнить вектор V размерностью n, произвольными буквами(словами), причем каждый элемент этого вектора должен...

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

Строковые данные
Здравствуйте! Нужна помощь в создании программы по работе с файлом разрешением .dat. Суть в том, чтобы в основную программу закачивать...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru