我是SQL和Microsoft Access的相对新手,我想知道是否有人可以帮助我解决我一直遇到的问题。
我有一个包含不同零件编号的不同零件的数据库,我想找到每个零件最常购买的单价。以下是我的数据库格式的示例,其中显示了购买部件的次数:
......等等。这是我迄今为止使用的代码,不是为了找到每个零件最常购买的价格,而是试图找出每个零件在每个价格下购买了多少次:
SELECT Database.PartNumber, Database.UnitPrice, COUNT(Database.UnitPrice) as Number_Of_Orders
FROM Database
GROUP BY Database.PartNumber, Database.UnitPrice
ORDER BY Database.PartNumber;
我无法解决的问题是,每个价格的出现金额都在整个表格中计算,而不是在一个零件编号的范围内。这个代码将在每个出现的价格$ 0.24旁边的Number_Of_Orders列中给出值3,即使我希望该值为1,所以我可以将它与3XG-32Q部分的购买次数进行比较,为0.26美元并确定0.26美元是该部件最常订购的价格。
如何更改我的计数功能,或在代码中添加其他方面,只计算每个价格在单个部分的上下文中出现的次数?
答案 0 :(得分:0)
计数将按每个值分组。如果没有,还会发生其他事情:
SELECT
Database.PartNumber,
Database.UnitPrice,
COUNT(*) AS Number_Of_Orders
FROM
Database
GROUP BY
Database.PartNumber,
Database.UnitPrice
ORDER BY
Database.PartNumber,
COUNT(*) Desc;
答案 1 :(得分:0)
这在MS Access中有点痛苦。您需要SELECT d.PartNumber, d.UnitPrice, COUNT(d.UnitPrice) as Number_Of_Orders
FROM Database as d
GROUP BY d.PartNumber, d.UnitPrice
HAVING Number_Of_Orders = (SELECT MAX(d3.Number_Of_Orders)
FROM (SELECT COUNT(*) as Number_Of_Orders
FROM Database as d2
WHERE d2.PartNumber = d.PartNumber
GROUP BY d2.UnitPrice
) as d3
)
ORDER BY d.PartNumber;
子句:
ion-item