You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为CAR Type类别生成唯一ID的SQL实现需求

需求说明

现有一张名为car的数据表,结构及数据如下:

CAR TypeColour
PorscheRed
PorscheBlue
MercedesYellow
VWYellow
VWRED

需要实现:为每种不同的CAR Type分配唯一ID,相同CAR Type的记录共用同一个ID,期望输出结果如下:

IDCAR TypeColour
1PorscheRed
1PorscheBlue
2MercedesYellow
3VWYellow
3VWRED
解决方案

通用SQL(支持窗口函数的数据库:MySQL 8+、PostgreSQL、SQL Server、Oracle等)

使用DENSE_RANK()窗口函数,根据CAR Type排序生成连续唯一ID:

SELECT
    DENSE_RANK() OVER (ORDER BY `CAR Type`) AS ID,
    `CAR Type`,
    Colour
FROM car;

兼容低版本数据库(如MySQL 5.x)的SQL

如果数据库不支持窗口函数,可通过子查询实现:

SELECT
    (SELECT COUNT(DISTINCT `CAR Type`) FROM car c2 WHERE c2.`CAR Type` <= c1.`CAR Type`) AS ID,
    c1.`CAR Type`,
    c1.Colour
FROM car c1
ORDER BY ID, Colour;

内容的提问来源于stack exchange,提问作者24ngusl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 07:25:16