Select

在同一列上選擇具有多個 AND 條件的分組依據

  • June 7, 2016

我有一個這樣的 sql 表:

SID|SERVICE_SID|ATTRIBUTE_SID|VALUE
1    2           5             "VAL1"
2    2           4             "VAL8"
3    2           3             "VAL4"
4    11          5             "VAL1"
5    11          3             "VAL4"

我想按 service_SID 分組,其中相同的 service_sid

AND (attribute_sid = 5 && Value=“VAL1”)

AND (attribute_sid = 4 && Value=“VAL8”)

因此,在這種情況下,只應返回 service_sid = 2 的行。

這樣的查詢是否可能?它會是什麼樣子?

您可以使用HSQLDB和 SQL ServerINTERSECT中可用的

SELECT SERVICE_SID
FROM SQLTable
WHERE attribute_sid = 5 AND Value='VAL1'
INTERSECT
SELECT SERVICE_SID
FROM SQLTable
WHERE attribute_sid = 4 AND Value='VAL8';

然後,您可以將此查詢的結果與您的表連接起來,然後group by SERVICE_SID

引用自:https://dba.stackexchange.com/questions/98762