SQL查询行中最常见的值

Roh*_*hit 0 sql sql-server

我的数据库看起来与下面的类似.

ID   A1   A2   A3    A4
7   2.31 2.31 2.31  2.32
8   2.32 2.32 2.32  2.32
9   2.31 2.3  2.31  2.31
10  2.32 2.3  2.32  2.31
Run Code Online (Sandbox Code Playgroud)

现在我正在寻找一个SQL查询,它给出如下输出(从ID中为每个值选择A1,A2,A3,A4中最常见的值,并将其显示在A列中)

ID  A
7   2.31
8   2.32
9   2.31
10  2.32
Run Code Online (Sandbox Code Playgroud)

有人可以帮我这个..

Gio*_*sos 7

您可以尝试以下查询:

SELECT ID, x.A
FROM mytable
CROSS APPLY (
   SELECT TOP 1 t.A
   FROM (VALUES (A1), (A2), (A3), (A4)) AS t(A)
   GROUP BY t.A
   ORDER BY COUNT(*) DESC) AS x
Run Code Online (Sandbox Code Playgroud)

在这里演示