Sql 如何从与之对应的另一列中获取输入和值的最大计数

Sql 如何从与之对应的另一列中获取输入和值的最大计数,sql,Sql,我的表有两列: +-------+--------+ | A | B | +=======+========+ | 123 | 111 | | 234 | 222 | | 345 | 111 | | 456 | 111 | | 567 | 222 | | 678 | 111 | +-------+--------+ A=列A是主键,我必须传递输入111222,查询应该找出其中哪一个在列b中发生最多 因为表1



我的表有两列:

+-------+--------+
|   A   |     B  |
+=======+========+   
| 123   |   111  | 
| 234   |   222  |
| 345   |   111  |
| 456   |   111  |
| 567   |   222  | 
| 678   |   111  |
+-------+--------+
A=列A是主键,我必须传递输入111222,查询应该找出其中哪一个在列b中发生最多


因为表111中的eg发生了4次,所以我需要表A中的值,用于111的每次发生

您可以使用b列上的group by获得计数,然后使用count上的order by desc选择最大计数,并仅选择前1行。如下

;WITH CTE AS (SELECT COUNT(1) CountB,B FROM TABLE3 
WHERE B IN (111,222)
GROUP BY B )
SELECT TOP 1 CountB AS MaxCount,B FROM CTE  ORDER BY CountB DESC
我在这里使用了常用的表表达式

查询
我看不出有什么问题。使用第一个查询确定最常见的值,使用第二个查询获取ID。您的问题是什么?输入值都是111和222 sql应该首先确定哪一个是最常见的,然后根据结果从列A中选择值问题是我是sql新手;)@TimSchmelter都是整数类型在这种情况下,期望的结果应该是123345456678您不需要两个查询。看起来很简单很好,但我使用的是DB2,limit func在这里不起作用,我想这是为了从所有值中获得第一个更大的值,对吗?
SELECT `B` as popular 
FROM your_table 
WHERE `B` IN ('111','222') 
GROUP BY `B` 
ORDER BY COUNT(*) DESC 
LIMIT 0, 1;
SELECT `A` FROM your_table WHERE B = PUTHEREPOPULAR;