sql—比较属于另一个id下的不同id组的行,并在单独的列中打印结果

00jrzges  于 2021-07-26  发布在  Java
关注(0)|答案(2)|浏览(358)

我正在寻找一个sql查询解决方案,可以让我比较不同的属性和它们的值,这是在行中,为不同的id是在一个父id分组。我想打印的结果,无论它是否匹配在一个单独的列。下面的屏幕截图包含数据和用红色标记的所需结果。

在这里添加我从gmb运行查询时得到的结果。我还添加了一个列expected\u result,这样我们就可以很容易地看到差异:gmb query和expected result

qvsjd97n

qvsjd97n1#

可以使用窗口函数和条件表达式:

  1. select
  2. t.*,
  3. case when count(*) over(partition by attributeName, attributeValue) > 1
  4. then 'True'
  5. else 'False'
  6. end has_match
  7. from mytable t
kmpatx3s

kmpatx3s2#

如果您的表不是太大,您可以在groupnumber和attributename上将其自身连接起来,如下所示:

  1. SELECT
  2. t1.AttributeName, t1.AttributeValue, t2.AttributeValue, CASE WHEN t1.AttributeValue = t2.AttributeValue THEN 'TRUE' ELSE 'FALSE' END as Result
  3. FROM Table AS t1
  4. INNER JOIN Table AS t2 ON t1.GroupNumber = t2.GroupNumber AND t1.AttributeName = t2.AttributeName

相关问题