好的,因此基本上我DISTINCT
通过使用变得无用ROW_NUMBER()
,我需要避免这种情况,因为这会导致重复的结果(当然,除了唯一的数字!)
因此,我要寻找的是一个查询,该查询将保持相同,但没有重复的行,因为num是唯一的:
WITH t AS
(
SELECT DISTINCT *, ROW_NUMBER() OVER (ORDER BY Date) AS num
FROM Original_Import
LEFT JOIN eqcas.dbo.BASE_PROXY_VIEW_WITHTARGET ON ADName = Targetuser
WHERE (BaseProxy = 'agmc' OR ADName = 'agmc')
AND (Commited IS NULL OR Commited = 0)
)
SELECT DISTINCT ID, num, ADName, Description_User, Description_Amex, Amount, Date
FROM t
WHERE (t.BaseProxy = 'agmc' OR t.ADName = 'agmc')
AND num BETWEEN 0 AND 20
AND (Commited IS NULL OR Commited = 0)
ORDER BY Date
修复起来可能很琐碎,但由于我不是SQL Server专家,所以我不习惯这些内部查询等。
更新:是的,num用于分页。
好像我晚两年我最近的博客帖子大约ROW_NUMBER()
是到SELECT
什么DENSE_RANK()
是对SELECT DISTINCT
。您的CTE必须替换为:
WITH t AS
(
SELECT DISTINCT *, DENSE_RANK() OVER (ORDER BY Date, ...) AS num
FROM Original_Import
LEFT JOIN eqcas.dbo.BASE_PROXY_VIEW_WITHTARGET ON ADName = Targetuser
WHERE (BaseProxy = 'agmc' OR ADName = 'agmc')
AND (Commited IS NULL OR Commited = 0)
)
SELECT ...
在上面的查询中,DENSE_RANK()
的ORDER BY
子句将需要列出Original_Import
和中的所有列BASE_PROXY_VIEW_WITH_TARGET
,以重现与DISTINCT
关键字相同的顺序。这将为每个重复的记录集分配一个准确的等级,这样DISTINCT
可以再次工作。
在引用的博客文章中,我还包含了指向SQLFiddle的链接,该链接在一个更简单的示例中进行了说明。
SELECT DISTINCT
v,
DENSE_RANK() OVER (w) row_number
FROM t
WINDOW w AS (ORDER BY v)
ORDER BY v, row_number
问题内容: 我正在处理一些Web点击数据,只是在查找带有访问的user_id(按时间戳记)的最新page_name。使用以下代码,将重复user_id,并显示page_name,并以降序排列。但是,我只希望last_click总是=1。完成后的查询将用作较大查询中的子查询。 这是我当前的代码: 问题答案: 您应该能够将查询移至子查询并添加条件:
问题内容: 我的SQL代码有什么问题? 我试图消除此答案之后的重复行 但是我一直收到以下错误: 在“(”附近:语法错误:SELECT rn = ROW_NUMBER()OVER( 这是SQL代码: 我在某处读到它与SQL版本或sqlite3的用法有关? 这里是一些其他有关该问题的信息: 我有一张开始的桌子: 我想最后得到一个没有关于col_2和col_3的复数的表(不关心col_1和col_4是什
我们在AWS上运行16个节点kafka集群,每个节点是m4. xLargeEC2实例,具有2TB EBS(ST1)磁盘。Kafka版本0.10.1.0,目前我们有大约100个主题。一些繁忙的话题每天会有大约20亿个事件,一些低量的话题每天只有数千个。 我们的大多数主题在生成消息时使用UUID作为分区键,因此分区分布相当均匀。 我们有相当多的消费者使用消费群体从这个集群消费。每个使用者都有一个唯一的
整数n的划分是将n写成正整数和的一种方式。对于 例如,对于n=7,一个分区是1 1 5。我需要一个程序来查找所有 使用“r”整数对整数“n”进行分区。例如,
本文向大家介绍SQL Server中row_number分页查询的用法详解,包括了SQL Server中row_number分页查询的用法详解的使用技巧和注意事项,需要的朋友参考一下 ROW_NUMBER()函数将针对SELECT语句返回的每一行,从1开始编号,赋予其连续的编号。在查询时应用了一个排序标准后,只有通过编号才能够保证其顺序是一致的,当使用ROW_NUMBER函数时,也需要专门一列用于
问题内容: 我有一个MS Access数据库,我将需要创建一个SQL查询,该查询使我可以在保留所有值的同时,在一列中选择所有不同的条目。 在这种情况下,一个例子比以往任何时候都更有价值数千个单词: 表: SQL魔术 结果: 基本上,它删除列B的所有唯一值,但保留数据的多行。我可以“按b分组”,然后“计数> 1”以得到不同的字符,但是结果将只列出B的一行,而不是我需要的2或更多行。 有什么帮助吗?