我需要在Access SQL中使用COUNT,并计算平均价格



我有两个表:

  产品项目- PRODUCT_ID - ITEM_ID- PRODUCT_DESC - STORE_ID- VENDOR_CODE - PRODUCT_ID                  - ITEM_PRICE

PRODUCT表用于列出商店中销售的每种产品的详细信息,ITEM表本质上是每个故事的库存,列出每个商店中的产品及其价格。

我想要一个函数,该函数返回相同产品类型的所有商品的产品描述、项目数 (COUNT) 和项目的平均价格。但是,我还希望有一个条件,即输出中仅列出具有 10 个以上项目的产品。

这是我到目前为止所拥有的:

SELECT PRODUCT.PRODUCT_DESC AS Description,
       COUNT(ITEM.ITEM_ID) AS Count,
       AVG(ITEM.ITEM_PRICE) AS [Average Price]
FROM PRODUCT, ITEM
WHERE PRODUCT.PRODUCT_ID = ITEM.PRODUCT_ID
AND COUNT(ITEM.ITEM_ID) > 10;

我正在使用访问SQL,我将不胜感激任何帮助!

尝试使用 INNER JOIN 而不是没有连接的过时多个表,如下所示:

SELECT PRODUCT.PRODUCT_DESC AS Description,
COUNT(*) AS CountItems,
AVG(ITEM.ITEM_PRICE) AS [Average Price]
FROM ITEM
INNER JOIN PRODUCT
ON ITEM.PRODUCT_ID = PRODUCT.PRODUCT_ID
GROUP BY PRODUCT.PRODUCT_DESC
HAVING COUNT(*) > 10

每当使用聚合函数(如 COUNTAVG)时,都必须GROUP BY非聚合列,并验证COUNT,请使用 HAVING COUNT 。你应该做这样的事情(未经测试):

SELECT PRODUCT.PRODUCT_DESC AS Description,
       COUNT(ITEM.ITEM_ID) AS Count,
       AVG(ITEM.ITEM_PRICE) AS [Average Price]
FROM PRODUCT, ITEM
WHERE PRODUCT.PRODUCT_ID = ITEM.PRODUCT_ID
GROUP BY PRODUCT.PRODUCT_DESC
HAVING COUNT(ITEM.ITEM_ID) > 10

相关内容

  • 没有找到相关文章

最新更新