我想在SQL中创建一个数据查询,以递增的方式对行组进行编号,按公共日期时间分组,并在下一个日期时间保持“组编号”递增,以此类推。正如我在使用partition by语句时所看到的那样,不能为每个组重置这些“组号”。以下是我的示例数据:
ts_DateTime |ID |Value|RowFilter|RequiredResult
--------------------------
2013/01/09 09:23:16 |8009 |0 |1 |1
2013/01/09 09:23:16 |8010 |0 |2 |1
2013/01/09 09:23:16 |8026 |0 |3 |1
2013/01/09 09:23:22 |8026 |0 |1 |2
2013/01/09 09:23:28 |8009 |0 |1 |3
2013/01/09 09:23:28 |8010 |0 |2 |3
2013/01/09 09:23:28 |8026 |0 |3 |3
2013/01/09 09:27:03 |8009 |0 |1 |4
2013/01/09 09:27:03 |8010 |0 |2 |4
2013/01/09 09:27:03 |8026 |0 |3 |4
2013/01/09 09:27:09 |8009 |0 |1 |5
2013/01/09 09:27:09 |8010 |0 |2 |5
2013/01/09 09:27:09 |8026 |0 |3 |5
2013/01/09 09:27:15 |8009 |0 |1 |6
2013/01/09 09:27:15 |8010 |0 |2 |6
2013/01/09 09:27:15 |8026 |0 |3 |6
我用于获取这些结果的查询是:
select hl.ts_DateTime, hl.Tagname as [ID], hl.TagValue as [Value],
ROW_NUMBER() OVER (PARTITION BY hl.ts_datetime ORDER BY hl.tagname) AS RowFilter
from Table1 hl
所以基本上,看看RowFilter列,我得到了每个分区的唯一行号。我实际需要的是,对于每个分区,RowFilter列应该看起来像所需的结果列。
这是我的回答Chris Ballance先生:
select
hl.ts_DateTime, hl.Tagname as [ID], hl.TagValue as [Value],
ROW_NUMBER() OVER (PARTITION BY hl.ts_datetime ORDER BY hl.tagname) AS RowFilter,
DENSE_RANK() OVER (PARTITION BY hl.ts_datetime ORDER BY hl.Tagname) AS RequiredResult
from Table1 h1
--试试这个它对我有用...
我想你正在寻找这个:
ROW_NUMBER() OVER (PARTITION BY hl.id ORDER BY hl.ts_DateTime) AS RowFilter
您不应该使用,
查询
SELECT hl.ts_DateTime,
hl.Tagname as [ID],
hl.TagValue as [Value],
DENSE_RANK() OVER (ORDER BY ts_datetime) AS RowFilter
FROM Table1 hl
ORDER BY RowFilter
问题内容: 假设我有一个返回sth的查询。像这样: 是否可以添加另一列来枚举每个组中的行(即,枚举具有其他角色的经理,工人和人员,而不考虑其他角色)?像这样: 使用Oracle扩展很好。 问题答案: 使用窗口功能:
根据给定的函数对数组的元素进行分组,并返回每个分组中元素的数量。 使用 Array.map() 将数组的值映射到函数或属性名称。 使用 Array.reduce() 创建一个对象,其中的键是从映射的结果中产生的。 const countBy = (arr, fn) => arr.map(typeof fn === 'function' ? fn : val => val[fn]).reduce
问题内容: 我有一张桌子,如下所示: 这是样本 的汇总功能仅允许我获得每个方面的最高分。我想查询以获得每个人的最高2分,我该怎么办? 我的预期输出是 问题答案: SQLFiddle演示
我还在学习如何使用XSL对每个组进行分组?(按国家)我正在尝试使用XSL将此XML转换为另一个XML。
我有以下练习: 编写一个名为createListOfObjects的函数,该函数接受 包含名字和姓氏以及返回值的字符串数组 一个对象数组,每个对象都具有属性 和以及名字和姓氏值 对应值* var namesList=['Cameron Betts','Shana Lopez','Angela li']* createListOfObjects(名称列表) = 到目前为止,我的解决方案是: 但它返回
我的问题是: 以下是我的结果集: 我最终要寻找的是一种通过“DEName”递增地对ColumnNumber数据字段进行编号的方法。换句话说,对于每个DEName的每个ColumnName,我希望ColumnNumber从1开始,然后转到每个DEName有多少个唯一的ColumnName。有什么想法吗?