Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 количество уникальных номеров касс за последние 7 дней  [new]
Шелепов Дмитрий
Member

Откуда:
Сообщений: 195
Добрый день!

подскажите, пожалуйста, как посчитать количество уникальных номеров касс по каждому магазину за последние 7 дней на каждую дату. Табличка чеков, в себе содержит номер магазина, дату, номер кассы, + все позиции, т.е. табличка по позициям.
9 сен 14, 18:51    [16556232]     Ответить | Цитировать Сообщить модератору
 Re: количество уникальных номеров касс за последние 7 дней  [new]
-2-
Member

Откуда:
Сообщений: 15330
Шелепов Дмитрий
как посчитать количество уникальных номеров касс по каждому магазину
пройти по каждому магазину и переписать номера.

Шелепов Дмитрий
за последние 7 дней
От "последнего дня" отсчитать семь дней можно с помощью календаря майя.
9 сен 14, 18:56    [16556243]     Ответить | Цитировать Сообщить модератору
 Re: количество уникальных номеров касс за последние 7 дней  [new]
ora601
Member

Откуда:
Сообщений: 750
Шелепов Дмитрий,

count(distinct kassa_nomer) over (partition by magazin order by date range 7 preceding)
9 сен 14, 19:02    [16556260]     Ответить | Цитировать Сообщить модератору
 Re: количество уникальных номеров касс за последние 7 дней  [new]
Шелепов Дмитрий
Member

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

не работает одновременно distinct и range 7 preceding

без distinct - да, но нужен именно он
9 сен 14, 19:21    [16556300]     Ответить | Цитировать Сообщить модератору
 Re: количество уникальных номеров касс за последние 7 дней  [new]
ora601
Member

Откуда:
Сообщений: 750
Шелепов Дмитрий
ora601,

не работает одновременно distinct и range 7 preceding

без distinct - да, но нужен именно он

Ну сделай это на (select distinct kassa_nomer,magazin,date from table)
9 сен 14, 19:25    [16556308]     Ответить | Цитировать Сообщить модератору
 Re: количество уникальных номеров касс за последние 7 дней  [new]
-2-
Member

Откуда:
Сообщений: 15330
Шелепов Дмитрий
не работает одновременно distinct и range 7 preceding
distinct не работает с order by, а range без него.
9 сен 14, 19:26    [16556311]     Ответить | Цитировать Сообщить модератору
 Re: количество уникальных номеров касс за последние 7 дней  [new]
sdfsdfыва
Guest
ora601
Шелепов Дмитрий
ora601,

не работает одновременно distinct и range 7 preceding

без distinct - да, но нужен именно он

Ну сделай это на (select distinct kassa_nomer,magazin,date from table)

ага, совсем одно и тоже

Шелепов Дмитрий, ты бы тестовый набор данных с with сделал бы, глядишь и запросец бы состроили
10 сен 14, 13:40    [16559048]     Ответить | Цитировать Сообщить модератору
 Re: количество уникальных номеров касс за последние 7 дней  [new]
Melkomyagkii_newbi
Member

Откуда: из прошлого
Сообщений: 1858
Шелепов Дмитрий
Добрый день!

подскажите, пожалуйста, как посчитать количество уникальных номеров касс по каждому магазину за последние 7 дней на каждую дату. Табличка чеков, в себе содержит номер магазина, дату, номер кассы, + все позиции, т.е. табличка по позициям.


--хрустальный_шар_мод ON
select count(distinct no_cass) from ..
where ... date >= sysdate-7
group by magaz, date(truncated)
--хрустальный_шар_мод OFF
10 сен 14, 14:11    [16559284]     Ответить | Цитировать Сообщить модератору
 Re: количество уникальных номеров касс за последние 7 дней  [new]
ora601
Member

Откуда:
Сообщений: 750
Кстати, Тебе нужно за последние 7 дней/рабочих дней ? Это имеет значение.
10 сен 14, 14:29    [16559399]     Ответить | Цитировать Сообщить модератору
 Re: количество уникальных номеров касс за последние 7 дней  [new]
st0ne
Member

Откуда:
Сообщений: 61
with t as (
select 1 m, 1 k , sysdate-7 d from dual union all
select 1 m, 2 k , sysdate-12 d from dual union all
select 1 m, 1 k , sysdate-10 d from dual union all
select 1 m, 2 k , sysdate-8 d from dual union all
select 1 m, 1 k , sysdate-0 d from dual union all
select 1 m, 3 k , sysdate-3 d from dual union all
select 2 m, 1 k , sysdate-1 d from dual union all
select 2 m, 1 k , sysdate-3 d from dual union all
select 2 m, 1 k , sysdate-1 d from dual
)
SELECT   t1.m, t1.d, COUNT (DISTINCT t2.k)
    FROM t t1 JOIN t t2 ON t1.m = t2.m AND t2.d BETWEEN t1.d - 7 AND t1.d
GROUP BY t1.m, t1.d
ORDER BY t1.m, t1.d
10 сен 14, 20:12    [16561427]     Ответить | Цитировать Сообщить модератору
 Re: количество уникальных номеров касс за последние 7 дней  [new]
MonteCarlos
Member

Откуда:
Сообщений: 547
За последние 7 дней, начиная со вчера
select magaz, trunc(a_date), count(distinct kas_num)
from checks 
where trunc(a_date) between trunc(sysdate-1) and trunc(sysdate-7)
group by magaz, trunc(a_date) 
10 сен 14, 23:14    [16561828]     Ответить | Цитировать Сообщить модератору
 Re: количество уникальных номеров касс за последние 7 дней  [new]
Добрый Э - Эх
Guest
MonteCarlos
За последние 7 дней, начиная со вчера
select magaz, trunc(a_date), count(distinct kas_num)
from checks 
where trunc(a_date) between trunc(sysdate-1) and trunc(sysdate-7)
group by magaz, trunc(a_date) 
счас придет ТС и начнет плакать, что в таблице охулион дохулиардов записей и запрос тормозит, отказываясь использовать индекс по полю с датой.
11 сен 14, 09:41    [16562524]     Ответить | Цитировать Сообщить модератору
 Re: количество уникальных номеров касс за последние 7 дней  [new]
MonteCarlos
Member

Откуда:
Сообщений: 547
Добрый Э - Эх, а вдруг у них индекс по функции
11 сен 14, 10:17    [16562635]     Ответить | Цитировать Сообщить модератору
 Re: количество уникальных номеров касс за последние 7 дней  [new]
Кщд
Guest
MonteCarlos, ваш запрос вернёт пустой результат.
15 сен 14, 13:34    [16576122]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить