选择列值不同的重复行
此数据库查询旨在根据特定列识别重复行,同时忽略其他列的值列。考虑以下场景:
------ ------ </p> <table> <thead><tr> <th>ARIDNR</th> <th>LIEFNR</th> </tr></thead> <tbody> <tr> <td>1</td> <td>A</td> </tr> <tr> <td>2</td> <td>A</td> </tr> <tr> <td>3</td> <td>A</td> </tr> <tr> <td>1</td> <td>B</td> </tr> <tr> <td>2</td> <td>B</td> </tr> </tbody> </table> <p>
目标是选择与不同 LIEFNR 值出现多次的 ARIDNR 值。
解决方案
为了实现这一点,我们可以利用以下方法查询:
SELECT * FROM Table WHERE ARIDNR IN ( SELECT ARIDNR FROM Table GROUP BY ARIDNR HAVING COUNT(DISTINCT LIEFNR) > 1 )
此查询使用嵌套子查询来识别满足指定条件的 ARIDNR 值。子查询按 ARIDNR 对行进行分组,并应用 COUNT(DISTINCT LIEFNR) 函数,该函数计算与每个 ARIDNR 关联的唯一 LIEFNR 值的数量。如果计数超过 1,ARIDNR 将添加到临时表中。
然后主查询从原始表中选择 ARIDNR 值与子查询标识的值匹配的所有行。这会产生所需的输出:
; ------ ------
ARIDNR | LIEFNR |
---|---|
1 | A |
1 | B |
2 | A |
2 | B |
此方法有效捕获具有不同 LIEFNR 值的重复行,满足初始要求。
以上是如何查找特定列中具有不同值的重复行?的详细内容。更多信息请关注PHP中文网其他相关文章!