首页 > 解决方案 > 如何返回具有多个数值的数据?

问题描述

到目前为止,这是我的查询...我想返回具有最小位置和最大音量的值。但是......相应网址的某些关键字具有多个具有相同位置的关键字。我只想为每个 url 返回 1 个结果。例如,我的列是

|URL          |keyword|Position| volume|
| www.ex.com  |example| 1      | 10.   |
| www.ex.com  | ex    | 1      | 20.   |
| www.ex.com  | lol   | 1      | 30.   |
| www.ex.com/h| hello | 4      | 40    |

标签: sql

解决方案


你没有提到你使用的是哪个数据库,所以我假设它是一个现代的,带有窗口函数:

你可以做:

select *
from (
  select *,
    row_number() over (partition by URL order by position, volume desc) as rn
  from (
    -- your query here
  ) x
) y
where rn = 1

推荐阅读