如何在使用Group By时区分记录?

hua*_*n68 5 sql oracle group-by

你好,我有桌子(看下面),有4条记录.请注意,ColumnA和ColumnB具有相同的值,ColumnC和columnD将具有不同的值.

ColumnA ColumnB ColumnC ColumnD
------- ------- ------- -------
xx      yy      AAA     333
xx      yy      BBB     555
xx      yy      AAA     333
xx      yy      BBB     555
Run Code Online (Sandbox Code Playgroud)

我试图使用Group By查询选择整个记录,如下所示:

SELECT ColumnC from TableA GROUP BY ColumnC;
Run Code Online (Sandbox Code Playgroud)

这个查询只显示了ColumnC,但我的期望是不仅选择整个记录ColumnC.

更新:我的预期输出是:

ColumnA ColumnB ColumnC ColumnD
------- ------- ------- -------
xx      yy      AAA     333
xx      yy      BBB     555
Run Code Online (Sandbox Code Playgroud)

我可以知道我该怎么办?

谢谢 @!

Qua*_*noi 2

在甲骨文中:

SELECT  *
FROM    (
        SELECT  t.*,
                ROW_NUMBER() OVER (PARTITION BY columnC ORDER BY columnA) AS rn
        FROM    mytable
        )
WHERE   rn = 1
Run Code Online (Sandbox Code Playgroud)

更改ORDER BY子句以控制将返回包含重复项的记录(现在具有最小值columnAis)。