考虑下表:
id, invoice_number, item_number, qty, price
1 5000 200 1 4.50
2 5000 201 2 5.50
3 5000 201 1 5.75
2 5000 202 1 5.50
3 5000 202 1 5.75
4 5000 203 1 6.00
如何获得以下结果:
invoice, item, count
5000, 200, 1
5000, 201, 2
5000, 202, 2
5000, 203, 1
我知道我可以按发票编号分组,但是我不能简单地计算发票,否则我将失去他们的名字。另外我想知道他们是否有不同的价格,即使它只是一个标志,但是我想要获得那么详细的细节我也可以把它放在一个脚本中并循环遍历这些项目,它只是我的数据集非常大,而且喜欢用纯SQL做它:)
提前致谢!
答案 0 :(得分:2)
获得您想要的确切输出:
select invoice_number, item_number, count(*)
from tbl
group by invoice_number, item_number
要获得所需的输出以及组内唯一价格的数量,以及这些价格是多少:
select invoice_number,
item_number,
count(*) as num_rows,
count(distinct price) as num_prices,
group_concat(distinct price) as prices
from tbl
group by invoice_number, item_number