Sql 如何找到两列的标识

Sql 如何找到两列的标识,sql,Sql,我有一张这样的桌子: STATE code company rate ---------------------------------- TX SD 1 0.5 TX SD 2 0.5 TX SD 3 0.7 TX SD 4 0.5 .......... 我需要验证在相同状态和相同代码下的速率是

我有一张这样的桌子:

STATE      code     company   rate 
----------------------------------
TX          SD      1         0.5
TX          SD      2         0.5
TX          SD      3         0.7
TX          SD      4         0.5
..........
我需要验证在相同状态和相同代码下的速率是否相同

我考虑加入表,得到率1和RAT2,然后可以使用时比较两列

大概是这样的:

CASE WHEN COLUMN1 = COLUMN2 THEN '1' ELSE '0' END AS MyDesiredResult
我不知道它有用吗?我怎样才能加入这张桌子

基本上,我需要一个报告,看看在相同的状态和相同的代码下,速率是否不同


谢谢

这将向您显示有问题的状态/代码组合:

select state, code, min(rate) min_rate, max(rate) max_rate
  from myTable
 group by state, code
having min(rate) != max(rate)

您可以进一步处理以查找每个速率有多少行。例如,使用CTE,但我将其作为练习留给读者。

您只需知道哪个状态/代码的速率值不完全相同?是的,很抱歉混淆,谢谢。正如你所说,我得到了一个很大的数字。因此,我将尝试使用计数。
select state, code, rate, count(*)
from tbl
group by state, code
having count(*) > 1;
select state, code, min(rate) min_rate, max(rate) max_rate
  from myTable
 group by state, code
having min(rate) != max(rate)