Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何获得唯一行的计数?_Sql - Fatal编程技术网

Sql 如何获得唯一行的计数?

Sql 如何获得唯一行的计数?,sql,Sql,我试图得到只相差一条记录的行数,这样我就可以通过确定最频繁出现的组合来找出“历史上”正确的行。这些行将如下所示: RowAVal1 | RowAVal2 | RowAVal3 | DiffVal1 RowAVal1 | RowAVal2 | RowAVal3 | DiffVal1 RowAVal1 | RowAVal2 | RowAVal3 | DiffVal2 RowAVal1 | RowAVal2 | RowBVal1 | DiffVal1 在本例中,对于RowAVal1 | RowAVa

我试图得到只相差一条记录的行数,这样我就可以通过确定最频繁出现的组合来找出“历史上”正确的行。这些行将如下所示:

RowAVal1 | RowAVal2 | RowAVal3 | DiffVal1
RowAVal1 | RowAVal2 | RowAVal3 | DiffVal1
RowAVal1 | RowAVal2 | RowAVal3 | DiffVal2
RowAVal1 | RowAVal2 | RowBVal1 | DiffVal1

在本例中,对于RowAVal1 | RowAVal2 | RowAVal3组合,具有DiffVal1的行将是历史上正确的组合,因为它看起来是最正确的组合。我需要弄清楚如何计算这些行。

如果我理解正确,您需要前三列组合的第四列的最常用值。这称为统计中的模式,使用聚合和窗口函数很容易计算:

select t.*
from (select col1, col2, col3, col4, count(*) as cnt,
             row_number() over (partition by col1, col2, col3 order by count(*) desc) as seqnum
      from t
      group by col1, col2, col3, col4
     ) t
where seqnum = 1;

你的预期产出是什么?戈登的回答很有效。我想要每一列,加上第四列的计数。我使用的是Gordon,但不是指定seqnum=1,而是使用seqnum>1来挑选“重复项”。谢谢!这种模式并不完全是我想要的,但它非常有帮助,为我指明了正确的方向。