SQL计数使用同一个表中的多个列

时间:2014-04-27 11:34:31

标签: sql count having

我正在制作一个模拟商店的数据库。我有一个名为ProductsTbl的表,类似于所有可供购买的产品,还有一个名为ProductType的列,用于将该项标识为游戏或控制台。 我想计算每个控制台适合多少个游戏。游戏有一个名为Platform的字段,它是游戏运行的控制台。

SELECT
ProductsTbl.ProductID,
ProductsTbl.ProductName,
ProductsTbl.Manufacturer,
count(ProductsTbl.ProductName = ProductsTbl.Platform)
FROM productstbl
WHERE ProductsTbl.ProductType = 'Console';

这是我迄今为止唯一的领先优势..

1 个答案:

答案 0 :(得分:2)

您需要自己加入桌面才能获得游戏列表。如果(看起来)连接游戏到控制台的东西是游戏的平台被设置为控制台的产品名称,这应该这样做;

SELECT p1.productid, p1.productname, p1.manufacturer, COUNT(p2.productid) games
FROM productstbl p1
LEFT JOIN productstbl p2 
  ON p2.producttype = 'game' AND p2.platform = p1.productname
WHERE p1.producttype = 'Console'
GROUP BY p1.productid, p1.productname, p1.manufacturer;