我正试图从“队列”表中获取每个元素的日期值
从表格(仅显示前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天后完全消失了:(
答案 0 :(得分: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
答案 1 :(得分:3)
使用GROUP BY
代替DISTINCT
:
SELECT
element,
MAX(added)
FROM
sr_queue
GROUP BY
element
答案 2 :(得分: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