0
我是SQL新手,尝试创建一个查询以返回唯一值的计数,但是否计算行取决于与其相关的另一行的值。我不确定这是否可以通过“分组”或其他功能完成。SQL - 基于多个键的值计数
让我试着解释。这里是数据的样子。有不确定的行数。为了简单起见,我只说明了每个ITEM_NUMBER的两个允许值。现在
CUSTOMER_ID ITEM_NUMBER LINE DISPLAY_VALUE
1 10 1 A
1 20 1 Y
1 30 1 C
1 10 2 B
1 20 2 X
1 30 2 C
2 10 1 B
2 20 1 X
2 30 1 D
2 10 2 A
2 20 2 Y
2 30 2 D
,我只想要回有效行的CUSTOMER_ID时对应行/ CUSTOMER_ID为20 ITEM_NUMBER的值等于“X”。这将是第一组过滤结果。
CUSTOMER_ID ITEM_NUMBER LINE DISPLAY_VALUE
1 10 2 B
1 20 2 X
1 30 2 C
2 10 1 B
2 20 1 X
2 30 1 D
接下来,我想获得按DISPLAY_VALUE和ITEM_NUMBER分组的计数。 示例代码:
SELECT COUNT(*) as 'Count', DISPLAY_VALUE, ITEM_NUMBER
FROM tmp.DB
GROUP BY DISPLAY VALUE, ITEM_NUMBER
理想的情况下,它会返回以下:
Count ITEM_NUMBER DISPLAY_VALUE
2 10 B
2 20 X
1 30 C
1 30 D
感谢菲尔!这工作像一个魅力。为了将来的参考,是否有一个SQL术语用于在内部联接中使用选择来限制结果? – Matt
@Matt - 我不知道这样的术语,但技术是一种常见的设计模式,所以它可能应该有一个 - 可能有一个机会,我们可以投资一个术语,并得到一些维基百科的认可:) –