Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Помогите написать Select...
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Помогите пожалуйста с запросом: Есть таблица tp_Modified tp_ID tp_WorkflowInstanceID tp_Version2018-04-11 03:59:26.000 19818 7EB9C078-E0B9-4B8A-8576-4081B196004C 22018-04-11 03:59:26.000 19804 7EB9C078-E0B9-4B8A-8576-4081B196004C 42018-03-26 11:14:21.000 19476 CEA9B396-AF0F-461C-A2F5-4167D15EC35E 22017-11-29 10:51:32.000 17577 6005A2AE-8713-422B-8B9A-472B3D89BA57 22017-11-29 10:56:13.000 17577 6005A2AE-8713-422B-8B9A-472B3D89BA57 32017-12-08 05:47:11.000 17728 6005A2AE-8713-422B-8B9A-472B3D89BA57 42017-12-07 05:27:01.000 17745 6005A2AE-8713-422B-8B9A-472B3D89BA57 22017-12-08 09:46:10.000 17745 6005A2AE-8713-422B-8B9A-472B3D89BA57 42017-12-11 06:45:44.000 17745 6005A2AE-8713-422B-8B9A-472B3D89BA57 52017-12-11 06:45:47.000 17745 6005A2AE-8713-422B-8B9A-472B3D89BA57 62017-12-08 09:46:10.000 17779 6005A2AE-8713-422B-8B9A-472B3D89BA57 2 Нужно вывести только те записи, где среди повторяющихся tp_ID, - tp_Modified максимальный. Т.е. результат должен быть таким: tp_Modified tp_ID tp_WorkflowInstanceID tp_Version2018-04-11 03:59:26.000 19818 7EB9C078-E0B9-4B8A-8576-4081B196004C 22018-04-11 03:59:26.000 19804 7EB9C078-E0B9-4B8A-8576-4081B196004C 42018-03-26 11:14:21.000 19476 CEA9B396-AF0F-461C-A2F5-4167D15EC35E 22017-11-29 10:56:13.000 17577 6005A2AE-8713-422B-8B9A-472B3D89BA57 32017-12-08 05:47:11.000 17728 6005A2AE-8713-422B-8B9A-472B3D89BA57 42017-12-11 06:45:47.000 17745 6005A2AE-8713-422B-8B9A-472B3D89BA57 62017-12-08 09:46:10.000 17779 6005A2AE-8713-422B-8B9A-472B3D89BA57 2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 14:22 |
|
||
|
Помогите написать Select...
|
|||
|---|---|---|---|
|
#18+
версия сервера? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 14:27 |
|
||
|
Помогите написать Select...
|
|||
|---|---|---|---|
|
#18+
Дедушка, Microsoft SQL Server 2014 (SP2) (KB3171021) - 12.0.5000.0 (X64) Jun 17 2016 19:14:09 Copyright (c) Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 6.3 <X64> (Build 9600: ) (Hypervisor) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 14:30 |
|
||
|
Помогите написать Select...
|
|||
|---|---|---|---|
|
#18+
читать про OVER в связке с ROW_NUMBER или MAX ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 14:56 |
|
||
|
Помогите написать Select...
|
|||
|---|---|---|---|
|
#18+
Если данных не много можете заджойнить вашу таблицу с (select tp_id , max(tp_modified) tp_modified from table group by tp_id) on tp_id = tp_id and tp_modified = tp_modified ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 16:33 |
|
||
|
Помогите написать Select...
|
|||
|---|---|---|---|
|
#18+
DECLARE @table TABLE ([tp_Modified] DATETIME NOT NULL ,[tp_ID] INT NOT NULL ,[tp_WorkflowInstanceID] [nvarchar](50) NOT NULL ,[tp_Version] [int] NOT NULL ) INSERT INTO @table VALUES (CONVERT(DATETIME,'2018-04-11 03:59:26.000',121),19818,'7EB9C078-E0B9-4B8A-8576-4081B196004C',2), (CONVERT(DATETIME,'2018-04-11 03:59:26.000',121),19804,'7EB9C078-E0B9-4B8A-8576-4081B196004C',4), (CONVERT(DATETIME,'2018-03-26 11:14:21.000',121),19476,'CEA9B396-AF0F-461C-A2F5-4167D15EC35E',2), (CONVERT(DATETIME,'2017-11-29 10:51:32.000',121),17577,'6005A2AE-8713-422B-8B9A-472B3D89BA57',2), (CONVERT(DATETIME,'2017-11-29 10:56:13.000',121),17577,'6005A2AE-8713-422B-8B9A-472B3D89BA57',3), (CONVERT(DATETIME,'2017-12-08 05:47:11.000',121),17728,'6005A2AE-8713-422B-8B9A-472B3D89BA57',4), (CONVERT(DATETIME,'2017-12-07 05:27:01.000',121),17745,'6005A2AE-8713-422B-8B9A-472B3D89BA57',2), (CONVERT(DATETIME,'2017-12-08 09:46:10.000',121),17745,'6005A2AE-8713-422B-8B9A-472B3D89BA57',4), (CONVERT(DATETIME,'2017-12-11 06:45:44.000',121),17745,'6005A2AE-8713-422B-8B9A-472B3D89BA57',5), (CONVERT(DATETIME,'2017-12-11 06:45:47.000',121),17745,'6005A2AE-8713-422B-8B9A-472B3D89BA57',6), (CONVERT(DATETIME,'2017-12-08 09:46:10.000',121),17779,'6005A2AE-8713-422B-8B9A-472B3D89BA57',2) ;WITH T AS ( SELECT MAX(tp_Modified) AS tp_Modified2 ,Tp_ID AS Tp_ID2 FROM @table GROUP BY Tp_ID ) SELECT [tp_Modified] ,[tp_ID] ,[tp_WorkflowInstanceID] ,[tp_Version] FROM @table INNER JOIN T ON T.Tp_ID2 = [tp_ID] AND T.tp_Modified2 = [tp_Modified] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 20:18 |
|
||
|
Помогите написать Select...
|
|||
|---|---|---|---|
|
#18+
MAULER, Слушайте Дедушку. Два вышестоящих поста игнорируйте ЗЫ: with t as (select [tp_ID], [tp_Modified], rank() over (partition by [tp_ID] order by [tp_Modified] desc) as r from @table ) select * from t where r=1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.04.2018, 21:35 |
|
||
|
Помогите написать Select...
|
|||
|---|---|---|---|
|
#18+
GlebanskiMAULER, Слушайте Дедушку. Два вышестоящих поста игнорируйте ЗЫ: with t as (select [tp_ID], [tp_Modified], rank() over (partition by [tp_ID] order by [tp_Modified] desc) as r from @table ) select * from t where r=1А чем плохи два вышестоящих поста? Работать будет даже на древнем сервере. #Хэш= ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.04.2018, 14:02 |
|
||
|
Помогите написать Select...
|
|||
|---|---|---|---|
|
#18+
04cf9f9576a6f15, В данном случае "громоздкий старомодный код" vs "современный элегантный". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2018, 19:53 |
|
||
|
Помогите написать Select...
|
|||
|---|---|---|---|
|
#18+
Коллеги, благодарю за помощь! Я был очень близко к вашему варианту, только я применил не Rank() а Row_Number() и не догадался отсортировать по убыванию в поднаборе и "выхватывать" первую строку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 07:56 |
|
||
|
Помогите написать Select...
|
|||
|---|---|---|---|
|
#18+
У меня сейчас другая беда. Надо из таблицы: tp_WorkflowInstanceID tp_VersionC6AB4139-4F5E-41DB-8DA8-0947C31488CA 4 C6AB4139-4F5E-41DB-8DA8-0947C31488CA 4 C6AB4139-4F5E-41DB-8DA8-0947C31488CA 2 C6AB4139-4F5E-41DB-8DA8-0947C31488CA 2 C6AB4139-4F5E-41DB-8DA8-0947C31488CA 4 908606BA-EB87-4BB9-8104-194A1BBCC500 4 908606BA-EB87-4BB9-8104-194A1BBCC500 4 908606BA-EB87-4BB9-8104-194A1BBCC500 6 908606BA-EB87-4BB9-8104-194A1BBCC500 6 908606BA-EB87-4BB9-8104-194A1BBCC500 4 908606BA-EB87-4BB9-8104-194A1BBCC500 6 68C7164C-10AD-4CB2-A0FE-28C5EA976575 4 68C7164C-10AD-4CB2-A0FE-28C5EA976575 4 68C7164C-10AD-4CB2-A0FE-28C5EA976575 4 37BAC7E0-A855-4F36-8E52-311EC0C30B04 2 Отобрать только те записи, где повторяющийся tp_WorkflowInstanceID содержит одни четверки! Т.е. в результате должна отобраться одна запись: tp_WorkflowInstanceID tp_Version68C7164C-10AD-4CB2-A0FE-28C5EA976575 4 Моя идея в том, чтобы вывести рядом в ещё одном столбце общее количество записей в подгруппе и тут же количество 4-рок. Если количество записей в подгруппе = количеству 4-рок - выводить эту запись. Как вывести общее количество в подгруппе я знаю: Код: sql 1. 2. 3. 4. 5. а как сделать чтобы рядом четверки подсчитывались - не могу сообразить )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 08:27 |
|
||
|
Помогите написать Select...
|
|||
|---|---|---|---|
|
#18+
MAULER, и тут же кол-во 4 Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 08:43 |
|
||
|
Помогите написать Select...
|
|||
|---|---|---|---|
|
#18+
Massa52, Вы практически читаете мои мысли))) Код: sql 1. 2. 3. 4. 5. 6. Благодарю! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 08:49 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39629875&tid=1689926]: |
0ms |
get settings: |
7ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
55ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 236ms |
| total: | 384ms |

| 0 / 0 |
