如果同一记录添加到新行上,则访问查询计数?
问题描述:
对于例子我有这样的访问表如果同一记录添加到新行上,则访问查询计数?
fruit person price
apple jhon 5
apple mary 12
pear alison 10
grape kim 12
grape kim 24
grape jack 9
我们怎么能算水果和添加了另一个字段(couNum)这样呢?
couNum fruit person price
1 apple jhon 5
2 apple mary 12
1 pear alison 10
1 grape kim 12
2 grape kim 24
3 grape jack 9
请帮忙谢谢。
答
这是痛苦的在MS Access做,但你可以用一个子查询做到这一点 - 假设你必须为每个行的唯一列:
select t.*,
(select count(*)
from t as t2
where t2.fruit = t.fruit and t2.person <= t.person
) as couNum
from t;
在大多数其他数据库,您只需使用row_number()
。如果您正在学习SQL并且可以选择使用哪种数据库,那么我会引导您使用更为“最新”的数据库之一,例如Postgres,MySQL,SQL Server,Oracle或其他几乎所有的数据库。
+0
非常感谢。像魅力一样工作 – Karakus
+0
“这在MS Access中很痛苦” - 它看起来很酷。 IIRC Access有一个很好的报告工具。这会不会像报告那样痛苦? – onedaywhen
使用'control-k'或者添加4个空格来格式化为代码 –
它必须是访问查询 – Karakus
我很努力去理解关系谓词(你表中每行的含义)。 “{葡萄,金,12}与'{葡萄,金,24}'有什么不同? - 金每次销售的葡萄都会收费两次,但是”两次收费“是什么意思? – onedaywhen