我需要在a中插入一个新的第一列CellTable,并在其中显示RowNumber当前行.在GWT中执行此操作的最佳方法是什么?
我有一个以下形式的查询:
select a, b, c, d, e, f, g, h,
row_number () over (partition by a, b order by c, d, e, f) as order
from table;
Run Code Online (Sandbox Code Playgroud)
而且它的性能有点糟糕。
我们尝试创建 2 个索引,第一个用于按列(a 和 b)分区,第二个用于按列(c、d、e、f)排序。
使用解释计划我们发现索引没有被使用。尽管它们对于带有 group by 子句的其他查询很有用。
关于如何重构查询或重新创建索引以帮助提高该查询的性能有什么想法吗?
提前致谢
我有一个包含一系列(IP varchar(15),DateTime datetime2)值的表.每行对应于用户发出的HTTP请求.我想为这些行分配会话号.不同的IP地址具有不同的会话号.如果最后一个请求超过30分钟,则应为同一IP分配新的会话号.这是一个示例输出:
IP, DateTime, SessionNumber, RequestNumber
1.1.1.1, 2012-01-01 00:01, 1, 1
1.1.1.1, 2012-01-01 00:02, 1, 2
1.1.1.1, 2012-01-01 00:03, 1, 3
1.1.1.2, 2012-01-01 00:04, 2, 1 --different IP => new session number
1.1.1.2, 2012-01-01 00:05, 2, 2
1.1.1.2, 2012-01-01 00:40, 3, 1 --same IP, but last request 35min ago (> 30min)
Run Code Online (Sandbox Code Playgroud)
第1列和第2列是输入,第3和第4列是所需的输出.该表显示了两个用户.
由于底层是表真的很大,如何有效地解决这个问题?我更喜欢对数据进行少量的传递(一次或两次).
如何动态地在查询中对行进行编号,类似于:
Select distinct name from @table where %rules
Run Code Online (Sandbox Code Playgroud)
当我添加ROW_NUMBER()OVER()时,我丢失了我的distinct属性,它返回表中的每个元素,并带有唯一的行号.
Select distinct ROW_NUMBER OVER(order by name), name from @table where %rules
Run Code Online (Sandbox Code Playgroud)
我不想创建临时表,否则我会为临时表创建一个主键,并让它以这种方式插入行号.
提前致谢!
我正在尝试根据特定条件申请ROW_NUMBER()增加计数器。
我的数据如下所示,目标计数器是Prep列
id DSR PrepIndicator Prep
--------------------------------------
1662835 -1 1 1
1662835 14 2 2
1662835 14 2 3
1662835 20 2 4
1667321 -1 1 1
1667321 30 2 2
1667321 14 2 3
1680648 -1 1 1
1680648 14 2 2
1680648 60 1 1
1680648 14 2 2
1680648 14 2 3
1683870 -1 1 1
1683870 12 2 2
1683870 10 2 3
1683870 60 1 1
1683870 7 2 2
Run Code Online (Sandbox Code Playgroud)
PrepIndicator …
我需要在 MySQL 中对行进行排序并根据该顺序为每一行分配一个数字。ORDER BY正在按预期工作,但不是ROW_NUMBER()。
这有效:
USE my_database;
SELECT
id
,volume
FROM my_table
ORDER BY volume;
Run Code Online (Sandbox Code Playgroud)
这不起作用:
USE my_database;
SELECT
id
,volume
,ROW_NUMBER() over(ORDER BY volume)
FROM my_table
ORDER BY volume;
Run Code Online (Sandbox Code Playgroud)
我收到此错误消息:
SELECT id ,volume ,ROW_NUMBER() over(ORDER BY volume) FROM my_table ORDER BY volume 错误代码:1064。您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在第 4 行 0.000 秒处的“(ORDER BY volume) FROM my_table ORDER BY vol”附近使用的正确语法
我做错了什么,我该如何使它工作?
我也试过RANK(),DENSE_RANK()这给出了同样的问题。
我试图从数据集中选择不同的NAME,但也返回其他列.我有它在一定程度上工作,但只是无法弄清楚如何把它结合在一起.
我怀疑我需要一个WITH x(或者其他东西,但我不确定
这是CODE和它返回的数据的图像.从这里我想只显示WHERE RN=1在图像中以红色圈出的
显示
Select
row_number() over (partition by tagname order by adddate) as RN,
tagname,
RIGHT(v_AlarmsWithTagname.TagName,charindex('.',REVERSE(v_AlarmsWithTagname.TagName))-1) as SCADA_tag,
convert(varchar(12) , adddate , 101) as AddDate,
left(tagname,CHARINDEX('.',tagname)-1) as 'Table',
[CC_NOTE_LOG].dbo.SCADA_DB.groupid as 'Group',
[CC_NOTE_LOG].dbo.SCADA_DB.dataset as 'Dataset',
[CC_NOTE_LOG].dbo.SCADA_DB.Description as 'Description'
FROM "Buckeye KB".dbo.v_AlarmsWithTagname
join
[CC_NOTE_LOG].dbo.SCADA_DB
on
RIGHT(v_AlarmsWithTagname.TagName,charindex('.',REVERSE(v_AlarmsWithTagname.TagName))-1)=[CC_NOTE_LOG].dbo.SCADA_DB.SCADA_SR_TAG
where
[CC_NOTE_LOG].dbo.SCADA_DB.groupid<>'test' and
[CC_NOTE_LOG].dbo.SCADA_DB.groupid not like 'Keep%' and
[CC_NOTE_LOG].dbo.SCADA_DB.groupid not like 'delete%' and
Tagname not like '%.ES_%' and
Tagname not like '%.OPC_%'
Run Code Online (Sandbox Code Playgroud)

我试图根据RowNum列的结果放置条件编号.
当RowNum为1时,我希望新列的全新增量为1.
在RoomNum 5栏中的图片应该被2,9替换3m 13乘4等等.我在这个查询中做错了什么?
SELECT CASE
WHEN rownum < 2
THEN
Row_number() OVER (
PARTITION BY Scheme ORDER BY Scheme ASC
)
ELSE NULL
END AS RoomNum,
CASE
WHEN rownum > 1
THEN NULL
ELSE scheme
END AS Scheme
,RowNum
Run Code Online (Sandbox Code Playgroud) 我正在使用查询dsl和spring数据.
环境:
<querydsl-apt.version>4.1.4</querydsl-apt.version>
<querydsl-jpa.version>4.1.4</querydsl-jpa.version>
<querydsl-sql.version>4.1.4</querydsl-sql.version>
<spring>4.3.3.RELEASE</spring>
Run Code Online (Sandbox Code Playgroud)
查询:
JPAQueryFactory query = new JPAQueryFactory(getEntityManager());
SimpleExpression<Long> rowNumber = SQLExpressions.rowNumber()
.over()
.orderBy(qServiceExecution.updatedAt.asc()).as("rowNumber");
List<Tuple> response = query.select(qServiceExecution.id, SQLExpressions.rowNumber()
.over()
.orderBy(qServiceExecution.updatedAt.asc()))
.from(qServiceExecution)
.fetch();
Run Code Online (Sandbox Code Playgroud)
例外:
Root cause: java.lang.IllegalArgumentException: No pattern found for ROWNUMBER
at com.querydsl.core.support.SerializerBase.visitOperation(SerializerBase.java:280) ~[querydsl-core-4.1.4.jar:na]
at com.querydsl.jpa.JPQLSerializer.visitOperation(JPQLSerializer.java:437) ~[querydsl-jpa-4.1.4.jar:na]
at com.querydsl.core.support.SerializerBase.visit(SerializerBase.java:231) ~[querydsl-core-4.1.4.jar:na]
at com.querydsl.core.support.SerializerBase.visit(SerializerBase.java:31) ~[querydsl-core-4.1.4.jar:na]
Spring error: No pattern found for ROWNUMBER; nested exception is java.lang.IllegalArgumentException: No pattern found for ROWNUMBER
at org.springframework.orm.jpa.EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(EntityManagerFactoryUtils.java:384) ~[spring-orm-4.3.3.RELEASE.jar:4.3.3.RELEASE]
at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:246) ~[spring-orm-4.3.3.RELEASE.jar:4.3.3.RELEASE]
at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:491) ~[spring-orm-4.3.3.RELEASE.jar:4.3.3.RELEASE]
at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:59) ~[spring-tx-4.3.3.RELEASE.jar:4.3.3.RELEASE]
at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:213) ~[spring-tx-4.3.3.RELEASE.jar:4.3.3.RELEASE]
Run Code Online (Sandbox Code Playgroud)
查询DSL文档: …
假设我需要选择 3 到 10 行。对于 MySQL,我将使用limit 对于 ORACLE,我将使用rownum
Impala 是否允许通过如此简单的方法选择确定的行?提前致谢。
row-number ×10
sql-server ×5
sql ×4
t-sql ×2
gwt ×1
hibernate ×1
impala ×1
indexing ×1
java ×1
limit ×1
mysql ×1
olap ×1
oracle10g ×1
partition ×1
querydsl ×1
rank ×1
rownum ×1
sorting ×1
spring-data ×1
sql-order-by ×1