Oracle选择以显示不同的结果

xesrikrc  于 2023-08-04  发布在  Oracle
关注(0)|答案(1)|浏览(128)

我想展示某些列的不同出现,对不同品牌的汽车进行编号,如下所示:

Brand              Car     DistinctBrand
Honda              Civic               1
Honda              CRV                 1
Ford               Edge                2
GM                 Blazer              3
GM                 Bolt                3
Fiat               50                  4
Fiat               500                 4
Fiat               Trekking            4

字符串
我想知道我在结果集上作为列的品牌数量。

ubof19bj

ubof19bj1#

你可以使用DENSE_RANK解析函数:

SELECT brand,
       car,
       DENSE_RANK() OVER (ORDER BY brand) AS distinct_brands
FROM   table_name;

字符串
其中,对于样本数据:

CREATE TABLE table_name (Brand, Car) AS
SELECT 'Honda', 'Civic'    FROM DUAL UNION ALL
SELECT 'Honda', 'CRV'      FROM DUAL UNION ALL
SELECT 'Ford',  'Edge'     FROM DUAL UNION ALL
SELECT 'GM',    'Blazer'   FROM DUAL UNION ALL
SELECT 'GM',    'Bolt'     FROM DUAL UNION ALL
SELECT 'Fiat',  '50'       FROM DUAL UNION ALL
SELECT 'Fiat',  '500'      FROM DUAL UNION ALL
SELECT 'Fiat',  'Trekking' FROM DUAL;


输出:
| 汽车|品牌介绍| DISTINCT_BRANDS |
| --|--| ------------ |
| 五百|一个| 1 |
| 50人|一个| 1 |
| 徒步旅行|一个| 1 |
| 边缘|二个| 2 |
| 螺栓|三个| 3 |
| 布雷泽|三个| 3 |
| 思域奇|四个| 4 |
| CRV|四个| 4 |

  • (品牌按字母顺序排列)*

fiddle

相关问题