gpt4 book ai didi

mysql - 使用行号时选择不同的行

转载 作者:行者123 更新时间:2023-11-28 23:29:14 33 4
gpt4 key购买 nike

目标:根据字段“DOCURL”和“ELEMENT”获取不同的值。

注意:(已编辑)以下将在 .aspx 页面上使用,而不是在 SQL 中使用

问题:如果我作为独立查询运行,我得到 14 行,这是正确的;

 Select DISTINCT DOCURL, ELEMENT From TblReference Where Property= 'XYZ' 

我的代码拉高了 34,我已将 Row_Number 更改为 DENSE_RANK,但仍然无法降到 14;

Select  * from( Select DISTINCT DOCURL, ELEMENT,
DENSE_RANK() over (order by id desc) As rn From TblReference
Where Property= 'XYZ' ) as t Where rn = 1

*** rn 处于可变循环中,正常情况下最多可以计数到 10。

引用:sql query distinct with Row_Number --

SELECT distinct id, DENSE_RANK() OVER (ORDER BY  id) AS RowNum
FROM table
WHERE fid = 64

最佳答案

由于 MySQL 不支持 ROW_NUMBER()DENSE_RANK() 等窗口函数,请尝试使用连接来实现:

 Select t.DOCURL, t.ELEMENT
From TblReference t
LEFT JOIN TblReference s
ON(t.docurl = s.docurl and t.element = s.element and s.id < t.id and s.property = 'XYZ')
Where t.Property= 'XYZ' AND s.id is null
ORDER BY t.OrderColumn
LIMIT 10;

我不知道你如何使用这个函数,但你的问题是你没有使用 PARTITION BY 部分:

Select  * 
from(Select DISTINCT DOCURL, ELEMENT,
ROW_NUMBER() over (PARTITION BY docurl,element order by id desc) As rn
From TblReference
Where Property= 'XYZ' ) t
Where t.rn = 1

关于mysql - 使用行号时选择不同的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37938982/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com