【问题标题】:MySQL SELECT INCREMENTMySQL 选择增量
【发布时间】:2021-05-09 03:46:50
【问题描述】:

阅读这篇文章:MySQL SELECT increment counter 我尝试了 juergen d 的解决方案并且成功了,但当我尝试在所选列上使用 DISTINCT 时,它返回每行的主键值而不是索引值。 查询成功:

SELECT city,
ROW_NUMBER() OVER() 
FROM addresses 
WHERE city IS NOT NULL AND city <> '' 
ORDER BY city;

多行的城市可以相同,因此希望仅返回具有有序数字列的不同值。

【问题讨论】:

  • 样本数据可能有助于解决问题,以便其他用户可以在 sqlfiddle 等中构建和测试。

标签: mysql distinct increment


【解决方案1】:

使用子查询获取不同的值,然后在主查询中使用ROW_NUMBER()

SELECT city, ROW_NUMBER() OVER ()
FROM (
    SELECT DISTINCT city
    FROM addresses
    WHERE city IS NOT NULL AND city <> ''
) AS x
ORDER BY city

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-26
    • 2015-09-23
    • 2012-06-05
    • 1970-01-01
    • 1970-01-01
    • 2014-12-06
    • 1970-01-01
    相关资源
    最近更新 更多