Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / прошу помощи / 13 сообщений из 13, страница 1 из 1
19.03.2020, 11:20
    #39939008
Luna17
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
прошу помощи
Есть таблица:

Date
UserID
sum

Мне нужно отобрать покупателей, которые за 24 часа сделали заказов больше чем на 1000, как это можно сделать?
...
Рейтинг: 0 / 0
19.03.2020, 11:27
    #39939013
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
прошу помощи
Что именно не получается?
...
Рейтинг: 0 / 0
19.03.2020, 11:41
    #39939021
Luna17
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
прошу помощи
Гавриленко Сергей Алексеевич, не знаю как поставить фильтр, который отбирает в теч. 24 часов.

HAVING SUM(Sum)>1000

а дальше не знаю
...
Рейтинг: 0 / 0
19.03.2020, 11:43
    #39939025
Ennor Tiegael
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
прошу помощи
Luna17,

Опубликуйте здесь последний вариант вашего запроса, который работает и не валится с ошибками. Мы подскажем.
...
Рейтинг: 0 / 0
19.03.2020, 11:45
    #39939027
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
прошу помощи
Luna17который отбирает в теч. 24 часов
Если речь про последние 24 часа, то вот так:
Date > dateadd( hour, -24, getdate() )
...
Рейтинг: 0 / 0
19.03.2020, 11:51
    #39939029
Luna17
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
прошу помощи
Гавриленко Сергей Алексеевич, в том-то и дело не последние, а любые 24 часа
...
Рейтинг: 0 / 0
19.03.2020, 11:59
    #39939034
Luna17
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
прошу помощи
Ennor Tiegael,


select userID, sum (sum)
from Transactions
Group by userID
having sum (sum)>1000

но мне надо чтобы проверяло сумму покупок только за любые 24 часа по одному покупателю, а не за всю его историю
...
Рейтинг: 0 / 0
19.03.2020, 11:59
    #39939035
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
прошу помощи
Как-то так:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
select
    DateFrom   = a.Date
    , DateTill = dateadd( hour, 24, a.Date )
    , a.UserId
    , b.[sum]
from    [Есть таблица] a
cross apply (
    select
        [sum] = sum ( b.[sum] ) 
    from [Есть таблица] b
    where
        a.UserId   = b.UserId
        and b.Date > a.Date
        and b.Date <= dateadd( hour, 24, a.Date )
    having 
        sum ( b.[sum] ) > 1000
) b
...
Рейтинг: 0 / 0
19.03.2020, 12:01
    #39939039
Ennor Tiegael
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
прошу помощи
Luna17
Гавриленко Сергей Алексеевич, в том-то и дело не последние, а любые 24 часа
Как-то так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
select distinct s.ClientId
from dbo.Sales s
where exists (
	select 0 from dbo.Sales t
	where t.ClientId = s.ClientId
		and t.PurchaseDate between s.PurchaseDate and dateadd(hour, 24, s.PurchaseDate)
	group by t.ClientId
	having sum(t.PurchaseAmount) >= 1000
);

На сколько-нибудь значимых объемах данных будет очень медленно.
...
Рейтинг: 0 / 0
19.03.2020, 12:16
    #39939045
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
прошу помощи
Luna17,

непонятно, что это даст. Зачем вам список сумм всех покупок относительно каждой покупки на отрезках в интервале 24 часа. Как минимум, там будет одна покупки. Кроме того, интервалы будут перекрываться.

Такая задача ранее рассматривалась в конференции, как с перекрытием, так и без. поищите. Тестовые задачи решаете, что ли?
...
Рейтинг: 0 / 0
19.03.2020, 12:29
    #39939050
Luna17
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
прошу помощи
Владислав Колосов,
мне не список покупок нужен, а СУММА, чтобы определить покупателей, которые тратят в сутки больше 1000. Прочитайте внимательно что было написано
...
Рейтинг: 0 / 0
19.03.2020, 12:36
    #39939053
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
прошу помощи
Luna17
Прочитайте внимательно что было написано
Вы в трёх местах написали три разные вещи. И какой смысл читать внимательнее? они от этого одинаковыми не станут.
...
Рейтинг: 0 / 0
19.03.2020, 12:50
    #39939061
Luna17
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
прошу помощи
Ennor Tiegael, Большое спасибо, то, что нужно!
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / прошу помощи / 13 сообщений из 13, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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