首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linq中的SQL重复行查询

问Linq中的SQL重复行查询
EN

Stack Overflow用户
提问于 2016-12-13 13:58:28
回答 2查看 131关注 0票数 0

我使用下面的sql查询来计算表MachineLog中的重复项。这个查询是我使用ExecuteSqlCommand在项目中直接执行的。但执行时间超过1分钟。

代码语言:javascript
复制
select Count(*) from MachineLog where Id in
    (
    select Id from (
    select *,
    RANK() OVER ( PARTITION BY CompanyId, DeviceEnrollNo, InOutDate, InOutTime, MachineNo ORDER BY Id DESC )rank
    From MachineLog
    )T
    where rank>1
    )

有人能帮帮忙吗?

EN

回答 2

Stack Overflow用户

发布于 2016-12-13 14:05:44

如果你只是想计数,试试这个,你为什么要用*呢?这可能会有帮助:

代码语言:javascript
复制
select Count(*) from MachineLog where Id in
    (
    select Id from (
    select Id,
    RANK() OVER ( PARTITION BY CompanyId, DeviceEnrollNo, InOutDate, InOutTime, MachineNo ORDER BY Id DESC )rank
    From MachineLog
    )T
    where rank>1
    )
票数 0
EN

Stack Overflow用户

发布于 2016-12-13 14:10:44

尝试使用CTE

;WITH CTE AS ( SELECT,Id RANK() OVER ( PARTITION BY CompanyId,DeviceEnrollNo,InOutDate,InOutTime,MachineNo ORDER BY ID DESC ) AS rank from MachineLog ) SELECT Count(*) From MachineLog m JOIN cte c ON c.id=m.ID WHERE c.rank >1

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41114555

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档