这似乎是一个简单的查询运行但我无法让它工作,我开始重新思考为什么我选择解决这个项目。
我正在尝试查找id相同的表中有多少条记录。例如
select productid, productgroup, shelflvl, shelfaisle, Count(Shelfaisle) AS totalaisles
from productlocation
Where productid= productid AND productgroup = 'canned'
Group By productid, productgroup, shelflvl, shelfaisle
具有相同ID的产品可以位于不同的过道和不同的货架上。我所要做的就是看一个产品有多少通道,我不能为我的生活让它正常工作。
感谢任何帮助,谢谢!
答案 0 :(得分:0)
请勿按照您要汇总的列进行分组:
select productid, productgroup, Count(Shelfaisle) AS totalaisles
from productlocation
Where productid=productid AND productgroup = 'canned'
Group By productid, productgroup
答案 1 :(得分:0)
怎么样:
select productid, productgroup, Count(shelfaisle) AS totalaisles
from productlocation
Where productid= productid AND productgroup = 'canned'
Group By productid,productgroup
您要将其他列添加到分组依据中,这意味着您无法将产品隔离为要计算的内容。当您只需要产品和货架时,您正在计算特定货架级别上特定行的产品。
答案 2 :(得分:0)
这样可行:
SELECT productid, shelflvl, MIN(productgroup) AS productgroup,
COUNT(Shelfaisle) AS totalaisles
FROM productlocation
WHERE productgroup = 'canned'
GROUP BY productid, shelflvl
ORDER BY productid;
答案 3 :(得分:0)
我假设某个产品不属于许多productgroup
s。
从Shelfaisle
移除GROUP BY
,因为这是您要计算的内容。
此外,COUNT(DISTINCT Shelfaisle)
可以防止重复(如果适用)。
最后,您不需要productid=productid
条件,显然总是会产生true
。
长话短说:
select
productid, productgroup, shelflvl, Count(distinct Shelfaisle) AS totalaisles
from productlocation
Where productgroup = 'canned'
Group By productid, productgroup, shelflvl