从此 SQL 查询中删除变量(子查询帮助)
Removing variables from this SQL query (Sub-queries help)
我做了这样的查询:
SELECT
COUNT(Prop1) AS CurrentAmount,
@prop1:= Prop1,
@prop2:= Prop2,
@prop3:= Prop3,
@prop4:= Prop4,
(SELECT COUNT(ID) FROM myTable WHERE Prop1=@prop1 AND Prop2=@prop2 AND Prop3=@prop3 AND Prop4=@prop4 GROUP BY Prop1) AS TotalAmount
FROM myTable
WHERE Target = 1876
GROUP BY Prop1, Prop2, Prop3, Prop4;
注意名为 CurrentAmount 和 TotalAmount 的别名列。
我假装他们计算了分配给 Target=1876 的文章数量,并与 table 中其他类似文章的数量进行了比较(其他人为 Prop1-4 分配了相同的值但分配给了其他目标)。
不过。我不喜欢在普通列中使用@variables 的方式。将是另一种计算方法,其中 TotalAmount 将完全独立于子查询中?
保持 WHERE Target = 1876 非常重要。其他一切都可能改变。
试试这个:
SELECT
COUNT(A.Prop1) AS CurrentAmount
(SELECT COUNT(B.ID) FROM myTable B WHERE
A.Prop1=B.Prop1 AND A.Prop2=B.Prop2 AND
A.Prop3=B.Prop3 AND A.Prop4=B.Prop4 GROUP BY
B.Prop1) AS TotalAmount
FROM myTable A
WHERE Target = 1876
GROUP BY A.Prop1, A.Prop2, A.Prop3, A.Prop4;
我做了这样的查询:
SELECT
COUNT(Prop1) AS CurrentAmount,
@prop1:= Prop1,
@prop2:= Prop2,
@prop3:= Prop3,
@prop4:= Prop4,
(SELECT COUNT(ID) FROM myTable WHERE Prop1=@prop1 AND Prop2=@prop2 AND Prop3=@prop3 AND Prop4=@prop4 GROUP BY Prop1) AS TotalAmount
FROM myTable
WHERE Target = 1876
GROUP BY Prop1, Prop2, Prop3, Prop4;
注意名为 CurrentAmount 和 TotalAmount 的别名列。 我假装他们计算了分配给 Target=1876 的文章数量,并与 table 中其他类似文章的数量进行了比较(其他人为 Prop1-4 分配了相同的值但分配给了其他目标)。
不过。我不喜欢在普通列中使用@variables 的方式。将是另一种计算方法,其中 TotalAmount 将完全独立于子查询中?
保持 WHERE Target = 1876 非常重要。其他一切都可能改变。
试试这个:
SELECT
COUNT(A.Prop1) AS CurrentAmount
(SELECT COUNT(B.ID) FROM myTable B WHERE
A.Prop1=B.Prop1 AND A.Prop2=B.Prop2 AND
A.Prop3=B.Prop3 AND A.Prop4=B.Prop4 GROUP BY
B.Prop1) AS TotalAmount
FROM myTable A
WHERE Target = 1876
GROUP BY A.Prop1, A.Prop2, A.Prop3, A.Prop4;