0

我正在尝试从“队列”表中获取每个元素的日期值

来自表格(仅显示前 30 名)

element                     added                   processed
order-confirmation          2013-07-03 14:12:02 2013-07-03 14:12:03
virtual-product-splitter    2013-07-03 14:12:02 2013-07-03 14:12:07
fraud-protect           2013-07-03 14:12:02 2013-07-03 14:12:11
giftcard-creator            2013-07-03 14:12:02 2013-07-03 14:12:15
code-dispatcher         2013-07-03 14:12:02 0001-01-01 00:00:00
order-confirmation          2013-07-03 14:10:01 2013-07-03 14:10:02
virtual-product-splitter    2013-07-03 14:10:01 2013-07-03 14:10:06
fraud-protect           2013-07-03 14:10:01 2013-07-03 14:10:10
giftcard-creator            2013-07-03 14:10:01 2013-07-03 14:10:14
code-dispatcher         2013-07-03 14:10:01 2013-07-03 14:10:19
order-confirmation          2013-07-03 14:08:01 2013-07-03 14:08:02
virtual-product-splitter    2013-07-03 14:08:01 2013-07-03 14:08:05
fraud-protect           2013-07-03 14:08:01 2013-07-03 14:08:09
giftcard-creator            2013-07-03 14:08:01 2013-07-03 14:08:13
code-dispatcher         2013-07-03 14:08:01 2013-07-03 14:08:18
code-dispatcher         2013-07-03 14:06:02 2013-07-03 14:06:19
order-confirmation          2013-07-03 14:06:01 2013-07-03 14:06:02
virtual-product-splitter    2013-07-03 14:06:01 2013-07-03 14:06:06
fraud-protect           2013-07-03 14:06:01 2013-07-03 14:06:10
giftcard-creator            2013-07-03 14:06:01 2013-07-03 14:06:14
order-confirmation          2013-07-03 14:04:02 2013-07-03 14:04:03
virtual-product-splitter    2013-07-03 14:04:02 2013-07-03 14:04:07
fraud-protect           2013-07-03 14:04:02 2013-07-03 14:04:11
giftcard-creator            2013-07-03 14:04:02 2013-07-03 14:04:15
code-dispatcher         2013-07-03 14:04:02 2013-07-03 14:04:19
order-confirmation          2013-07-03 14:02:01 2013-07-03 14:02:03
virtual-product-splitter    2013-07-03 14:02:01 2013-07-03 14:02:06
fraud-protect           2013-07-03 14:02:01 2013-07-03 14:02:10
giftcard-creator            2013-07-03 14:02:01 2013-07-03 14:02:14
code-dispatcher         2013-07-03 14:02:01 2013-07-03 14:02:19

正在做

select distinct element from sr_queue我明白了

'c5-code-integration'
'c5-debitor-integration'
'c5-order-integration'
'c5-product-integration'
'code-dispatcher'
'fraud-protect'
'giftcard-creator'
'order-confirmation'
'packaged-confirmation'
'virtual-product-splitter'

我正在尝试将最大日期(因为有几个)附加到每个元素,但是做

select element, max(added), processed
from sr_queue 
where element in (
   'c5-code-integration',
   'c5-debitor-integration',
   'c5-order-integration',
   'c5-product-integration',
   'code-dispatcher',
   'fraud-protect',
   'giftcard-creator',
   'order-confirmation',
   'packaged-confirmation',
   'virtual-product-splitter')

我应该如何创建选择?

所以我可以得到:

order-confirmation          2013-07-03 14:12:02 2013-07-03 14:12:03
virtual-product-splitter    2013-07-03 14:12:02 2013-07-03 14:12:07
fraud-protect               2013-07-03 14:12:02 2013-07-03 14:12:11
giftcard-creator            2013-07-03 14:12:02 2013-07-03 14:12:15
code-dispatcher             2013-07-03 14:12:02 0001-01-01 00:00:00
c5-code-integration         2013-07-03 14:12:02 2013-07-03 14:12:15
...

在编写代码 3 天后,我完全空白了 :(

4

3 回答 3

3
select element, max(added), max(processed)
from sr_queue 
group by element

编辑:

select element, added, processed
from sr_queue q
where added = (SELECT MAX(added) FROM sr_queue s WHERE s.element = q.element)

或者另一种可能性:

SELECT element, added, processed
FROM sr_queue s 
INNER JOIN (
   SELECT element, MAX(added)
   FROM sr_queue 
   GROUP BY element
) q ON s.element = q.element
于 2013-07-03T15:27:03.177 回答
3

使用GROUP BY代替DISTINCT

SELECT
     element,
     MAX(added)
FROM
    sr_queue
GROUP BY
    element
于 2013-07-03T15:27:23.737 回答
0

假设是最新版本的 MS SQL Server

 select element, added, processed from
 (select *, row_number() over (partition by element order by added desc) as ranker
 from sr_queue q ) Z
 where ranker = 1
于 2013-07-05T13:52:44.950 回答