如何在SQL Server中使用group by列基于where子句获取每个组的前1个记录

克里希纳·莫汉(Krishna Mohan)

我想要每个组的前1条记录,组列为imei如果用户有多个设备,则应显示所有设备的最新记录。

的SQL

SELECT TOP 1 
    p.imei, DEVICEID, timestatmp, ph, do, temp 
FROM 
    dbo.pond AS p
INNER JOIN 
    customerdevices AS cd ON p.imei = cd.imei  
INNER JOIN
    users AS u ON cd.CustomerId = u.CustomerId 
WHERE
    u.username = 'bob'  
ORDER BY
   timestatmp DESC

样本数据

imei            DEVICEID    timestatmp            ph     do     temp
-----------------------------------------------------------------------
869668021752476 1027    2020-03-16 04:33:00.617 7.86    5.04    22.52
869668021752476 1027    2020-03-16 04:03:00.957 7.88    4.99    22.59
869668021732924 1025    2020-03-16 03:57:01.130 7.39    5.40    21.85

预期产量:

imei            DEVICEID    timestatmp            ph     do     temp
-----------------------------------------------------------------------
869668021752476 1027    2020-03-16 04:33:00.617 7.86    5.04    22.52
869668021732924 1025    2020-03-16 03:57:01.130 7.39    5.40    21.85
德鲁·乔希

您可以使用ROW_NUMBER()函数

SELECT 
imei,
DEVICEID,
timestatmp,
ph,
do,
temp FROM
(
SELECT 
p.imei,
DEVICEID,
timestatmp,
ph,
do,
temp,
RN=ROW_NUMBER() OVER( PARTITION BY p.imei ORDER BY timestatmp DESC) 
FROM dbo.pond as p
inner JOIN customerdevices as cd ON p.imei = cd.imei  inner Join users
as u on cd.CustomerId = u.CustomerId where u.username='bob' )
T
Where T.RN=1 order by timestatmp desc

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在sql server中使用group by获取类别计数?

来自分类Dev

如何在SQL Server中使用where子句使用if else

来自分类Dev

如何在 SQL Server 的 where 子句中使用别名

来自分类Dev

如何在 SQL Server 数据库的 where 子句中使用基于日期获取数据的 case 语句

来自分类Dev

SQL Server如何在组内创建组-使用GROUP BY

来自分类Dev

如何在组内的 SQL Server 中使用 LAG?

来自分类Dev

如何在SQL Server中使用别名添加两列?

来自分类Dev

如何在SQL Server中使用伪列过滤查询?

来自分类Dev

如何在SQL Server 2012中使用GROUP BY

来自分类Dev

在SQL Server中使用GROUP BY

来自分类Dev

在SQL Server中使用GROUP BY

来自分类Dev

如何在Oracle SQL中使用by by子句

来自分类Dev

如何在“具有子句”中使用列选择,而不在SQL Server中的“按子句分组”中使用列选择

来自分类Dev

如何在 postgresql 中使用子句 GROUP BY xml 列?

来自分类Dev

如何在SQL Server中使用repect到Date获取唯一记录

来自分类Dev

如何在SQL的where子句中使用sum?

来自分类Dev

如何在SQL的Where子句中使用View元素

来自分类Dev

如何在动态sql中使用变量设置where子句

来自分类Dev

如何在 SQL SERVER 中使用 SUBSTRING 获取 2 个单词

来自分类Dev

如何在按子句SQL Server 2005中使用子查询

来自分类Dev

在SQL Server视图中使用GROUP BY返回具有最大值的记录

来自分类Dev

SQL Server-如何在值中间有句点的记录中使用like关键字

来自分类Dev

在SQL Server中使用IN子句

来自分类Dev

您如何在子查询中使用group by / having子句?

来自分类Dev

如何在游标查询中使用group by子句?

来自分类Dev

如何在SQL SERVER中的Where条件中使用Caluse之间的多重性

来自分类Dev

如何在 SQL 查询中使用两个 where 子句

来自分类Dev

如何在单个 SQL 语句的 where 子句中使用两个 LIKE?

来自分类Dev

如何在SQL Server中使用行号获取匹配数据?

Related 相关文章

  1. 1

    如何在sql server中使用group by获取类别计数?

  2. 2

    如何在SQL Server中使用where子句使用if else

  3. 3

    如何在 SQL Server 的 where 子句中使用别名

  4. 4

    如何在 SQL Server 数据库的 where 子句中使用基于日期获取数据的 case 语句

  5. 5

    SQL Server如何在组内创建组-使用GROUP BY

  6. 6

    如何在组内的 SQL Server 中使用 LAG?

  7. 7

    如何在SQL Server中使用别名添加两列?

  8. 8

    如何在SQL Server中使用伪列过滤查询?

  9. 9

    如何在SQL Server 2012中使用GROUP BY

  10. 10

    在SQL Server中使用GROUP BY

  11. 11

    在SQL Server中使用GROUP BY

  12. 12

    如何在Oracle SQL中使用by by子句

  13. 13

    如何在“具有子句”中使用列选择,而不在SQL Server中的“按子句分组”中使用列选择

  14. 14

    如何在 postgresql 中使用子句 GROUP BY xml 列?

  15. 15

    如何在SQL Server中使用repect到Date获取唯一记录

  16. 16

    如何在SQL的where子句中使用sum?

  17. 17

    如何在SQL的Where子句中使用View元素

  18. 18

    如何在动态sql中使用变量设置where子句

  19. 19

    如何在 SQL SERVER 中使用 SUBSTRING 获取 2 个单词

  20. 20

    如何在按子句SQL Server 2005中使用子查询

  21. 21

    在SQL Server视图中使用GROUP BY返回具有最大值的记录

  22. 22

    SQL Server-如何在值中间有句点的记录中使用like关键字

  23. 23

    在SQL Server中使用IN子句

  24. 24

    您如何在子查询中使用group by / having子句?

  25. 25

    如何在游标查询中使用group by子句?

  26. 26

    如何在SQL SERVER中的Where条件中使用Caluse之间的多重性

  27. 27

    如何在 SQL 查询中使用两个 where 子句

  28. 28

    如何在单个 SQL 语句的 where 子句中使用两个 LIKE?

  29. 29

    如何在SQL Server中使用行号获取匹配数据?

热门标签

归档