powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / GROUP BY и одинаковая дата
7 сообщений из 7, страница 1 из 1
GROUP BY и одинаковая дата
    #37596528
SamFisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!
Подскажите, пожалуйста. У меня есть таблица, в ней мне необходимо сгруппировать столбцы и узнать, количество элементов которые вошли в группу, не учитывая те записи, у которых одна дата в группе. DISTINCT при группировки не работает. Пытался сделать так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
SELECT DISTINCT 
                      P.CLIENT_ID, DBA.CLIENT.SURNAME, DBA.CLIENT.NAME, DBA.CLIENT.PATR, DBA.CLIENT.DEPART_ID, DBA.DEPART.NAME AS DNAME, 
                      DBA.SUBDEPART.NAME AS SDNAME, COUNT(P.CLIENT_ID) AS COUNTRES
FROM         DBA.PROTOCOL P INNER JOIN
                      DBA.CLIENT ON P.CLIENT_ID = DBA.CLIENT.CLIENT_ID LEFT OUTER JOIN
                      DBA.DEPART ON DBA.CLIENT.DEPART_ID = DBA.DEPART.DEPART_ID LEFT OUTER JOIN
                      DBA.SUBDEPART ON DBA.CLIENT.SUBDEP_ID = DBA.SUBDEPART.SUBDEP_ID
WHERE     EXISTS
                          (SELECT     OBJECT_ID, ZONE_ID, DATE_TIME, BU_ID, LINE_ID, NODE_ID, LOG_DT, WSTATION_ID, OPER_ID, CLIENT_ID, MESS_ID, MESS_TYPE, 
                                                   PROT_ID
                            FROM          DBA.PROTOCOL P2
                            WHERE      (P.CLIENT_ID = CLIENT_ID) AND (CONVERT(TEXT, P.DATE_TIME, 101) <> CONVERT(TEXT, DATE_TIME, 101)))
GROUP BY P.CLIENT_ID, DBA.CLIENT.SURNAME, DBA.CLIENT.NAME, DBA.CLIENT.PATR, DBA.DEPART.NAME, DBA.SUBDEPART.NAME, 
                      DBA.CLIENT.DEPART_ID
ORDER BY DBA.CLIENT.DEPART_ID
...
Рейтинг: 0 / 0
GROUP BY и одинаковая дата
    #37596574
BirdIV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SamFisher,

having не помогает?
...
Рейтинг: 0 / 0
GROUP BY и одинаковая дата
    #37597305
SamFisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BirdIV,

Тогда просит, чтобы я в GROUP BY включил DATE_TIME. А тогда группироваться будет по дате, а мне этого не надо
...
Рейтинг: 0 / 0
GROUP BY и одинаковая дата
    #37597344
Фотография Ggg_old
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в having указывается не поле, а агрегат. Почитайте документацию.
The HAVING clause restricts the rows returned by a query. It sets conditions for the GROUP BY clause similar to the way in which WHERE sets conditions for the SELECT clause.

The HAVING clause search conditions are identical to WHERE search conditions except that WHERE search conditions cannot include aggregates, while HAVING search conditions often do.
т.е. в вашем случае будет:
HAVING COUNT(P.CLIENT_ID)>1
...
Рейтинг: 0 / 0
GROUP BY и одинаковая дата
    #37597535
mikron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SamFisher,

Запутанно излагаеш.
Или тебе надо так:
Код: sql
1.
having count(distinct date_time) = 1


Или тебе надо сначала включить групировку по дате, отфилтовать, снова сгрупировать без даты:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
select a, b, c, ...
from (
   select a, b, c, date_time, ...
   from ...
   group a, b, c, date_time
   having count(*) = 1
 ) ss
group a, b, c 
...
Рейтинг: 0 / 0
GROUP BY и одинаковая дата
    #37600115
SamFisher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mikron,

Да, спасибо большое, второе подходит. Как-то мне в голову сразу не пришло(
...
Рейтинг: 0 / 0
GROUP BY и одинаковая дата
    #37666035
Kru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор>> узнать, количество элементов которые вошли в группу, не учитывая те записи, у которых одна дата в группе

Может быть case when count(distinct date) > 1 then count(*) else min(-1) end
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / GROUP BY и одинаковая дата
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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