【问题标题】:SQL Deduplicate rows based on one ColumnSQL 基于一列去重
【发布时间】:2021-12-14 01:38:21
【问题描述】:

我有一个广告名称列和 URL 列,我只想保留唯一的广告名称,以及任何 URL 变体。它们是缩短的不同 URL,但实际上重定向到相同的 URL。

如何使用 SQL 返回具有唯一广告名称及其对应 URL 的表。每个广告只需要一个 URL。

Ad name URL
ad name 1 URL variant 1
ad name 1 URL variant 2
ad name 1 URL variant 3
ad name 2 URL variant 1
ad name 2 URL variant 2
ad name 2 URL variant 3

【问题讨论】:

  • 具体的数据库是什么?
  • 我在 Google Bigquery 中使用 SQL

标签: sql duplicates


【解决方案1】:

你没有提到数据库,所以我假设它是 PostgreSQL。

你可以这样做:

select distinct on (ad_name), ad_name, url from t order by ad_name

【讨论】:

    【解决方案2】:

    通过下面的代码解决

    选择 ad_name, Max(URL) 作为 URL 从表 按广告名称分组

    【讨论】:

    • 正确,您可以使用MAX 或MIN。 ANY_VALUE 更好,因为这告诉 DBMS 你真的不在乎,它可以快速选择任何名称的 URL,而无需遍历其所有行。
    猜你喜欢
    • 2020-04-26
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 2023-01-19
    • 1970-01-01
    • 2021-06-04
    • 2017-12-29
    • 2013-08-04
    相关资源
    最近更新 更多