Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Выбрать все записи без повтора значений в столбце. / 4 сообщений из 4, страница 1 из 1
05.10.2021, 19:46
    #40102172
Serge163
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбрать все записи без повтора значений в столбце.
Здравствуйте.
Есть таблица:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
CREATE TABLE Norm (
  id_ngod INT IDENTITY
 ,god INT NULL CONSTRAINT DF_Norm_god DEFAULT (DATEPART(YEAR, GETDATE()))
 ,cs_id INT NULL
 ,summa FLOAT NULL CONSTRAINT DF_Norm_summa DEFAULT (NULL)
 ,CONSTRAINT PK_Z_norm PRIMARY KEY CLUSTERED (id_ngod)
) ON [PRIMARY]
GO

SET IDENTITY_INSERT Norm ON
GO

INSERT Norm(id_ngod, god, cs_id, summa) VALUES (510, 2021, 73, 5500000)
INSERT Norm(id_ngod, god, cs_id, summa) VALUES (512, 2021, 7903, 8500000)
INSERT Norm(id_ngod, god, cs_id, summa) VALUES (513, 2021, 1909, 5000000)
INSERT Norm(id_ngod, god, cs_id, summa) VALUES (514, 2021, 14860, 2000000)
INSERT Norm(id_ngod, god, cs_id, summa) VALUES (515, 2021, 7989, 1500000)
INSERT Norm(id_ngod, god, cs_id, summa) VALUES (516, 2021, 51, 1500000)
INSERT Norm(id_ngod, god, cs_id, summa) VALUES (517, 2021, 52, 5000000)
INSERT Norm(id_ngod, god, cs_id, summa) VALUES (518, 2021, 64, 2750000)
INSERT Norm(id_ngod, god, cs_id, summa) VALUES (519, 2021, 7903, 8500000)
INSERT Norm(id_ngod, god, cs_id, summa) VALUES (520, 2021, 14866, 1000000)
INSERT Norm(id_ngod, god, cs_id, summa) VALUES (521, 2021, 14953, 3000000)
INSERT Norm(id_ngod, god, cs_id, summa) VALUES (522, 2021, 14960, 500000)
INSERT Norm(id_ngod, god, cs_id, summa) VALUES (523, 2021, 8, 2500000)
INSERT Norm(id_ngod, god, cs_id, summa) VALUES (524, 2021, 7985, 20000000)
INSERT Norm(id_ngod, god, cs_id, summa) VALUES (525, 2021, 7923, 4000000)
INSERT Norm(id_ngod, god, cs_id, summa) VALUES (526, 2021, 14845, 5500000)
INSERT Norm(id_ngod, god, cs_id, summa) VALUES (527, 2021, 14864, 5000000)
INSERT Norm(id_ngod, god, cs_id, summa) VALUES (528, 2021, 13, 1200000)
INSERT Norm(id_ngod, god, cs_id, summa) VALUES (529, 2021, 62, NULL)
INSERT Norm(id_ngod, god, cs_id, summa) VALUES (530, 2021, 73, 5500000)
INSERT Norm(id_ngod, god, cs_id, summa) VALUES (531, 2021, 1909, 5000000)
INSERT Norm(id_ngod, god, cs_id, summa) VALUES (532, 2021, 2713, 2000000)
INSERT Norm(id_ngod, god, cs_id, summa) VALUES (533, 2021, 7926, 21500000)
INSERT Norm(id_ngod, god, cs_id, summa) VALUES (534, 2021, 7978, 300000)
INSERT Norm(id_ngod, god, cs_id, summa) VALUES (535, 2021, 7982, 700000)
INSERT Norm(id_ngod, god, cs_id, summa) VALUES (536, 2021, 7983, 50000)
INSERT Norm(id_ngod, god, cs_id, summa) VALUES (537, 2021, 62, NULL)

GO
SET IDENTITY_INSERT Norm OFF
GO



Необходимо выбрать все записи без повторяющихся значений в столбце cs_id
В результате должно быть 23 стоки вместо 27.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
id_ngod	god	cs_id	       summa
523	      2021	8	        2500000
528	      2021	13	        1200000
516	      2021	51	        1500000
517	      2021	52	        5000000
537	      2021	62	        NULL
518	      2021	64	        2750000
530	      2021	73	        5500000
531	      2021	1909	        5000000
532	      2021	2713	        2000000
512	      2021	7903	        8500000
525	      2021	7923	        4000000
533	      2021	7926	        21500000
534	      2021	7978	        300000
535	      2021	7982	        700000
536	      2021	7983	        50000
524	      2021	7985	        20000000
515	      2021	7989	        1500000
526	      2021	14845	5500000
514	      2021	14860	2000000
527	      2021	14864	5000000
520	      2021	14866	1000000
521	      2021	14953	3000000



Прошу помощи, заранее премного благодарен. Прошу прощение за корявость примера.
...
Рейтинг: 0 / 0
05.10.2021, 20:10
    #40102177
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбрать все записи без повтора значений в столбце.
Если ты доложишь нам, какой из "повторов cs_id" оставлять - нет ничо сложного.
...
Рейтинг: 0 / 0
06.10.2021, 05:15
    #40102216
Serge163
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбрать все записи без повтора значений в столбце.
Вероятно, вы правы нужно знать, что оставлять.
Записи с одинаковым cs_id полностью идентичные за исключением их id_ngod. Если возможно, то нужно два варианта, первый оставить записи с наименьшим id_ngod и второй, оставить записи с наибольшим id_ngod.
...
Рейтинг: 0 / 0
06.10.2021, 10:26
    #40102277
Serge163
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбрать все записи без повтора значений в столбце.
Всем спасибо, вопрос решен.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
SELECT
  MAX(id_ngod) id_ngod
 ,god
 ,cs_id
 ,summa
FROM dbo.Norm
  GROUP BY god
 ,cs_id
 ,summa


SELECT
  MIN(id_ngod) id_ngod
 ,god
 ,cs_id
 ,summa
FROM dbo.Norm
  GROUP BY god
 ,cs_id
 ,summa
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Выбрать все записи без повтора значений в столбце. / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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