原数据表:
货物 重量
A 100
B 100
C 200
A 100
B 200
打印要求统计表:
货物 批数 重量累计
A 2 200
B 2 300
C 1 200
即mySQL的group by 语句的功能。
自己用遍历写了一个感觉效率很低,虽然数据量不是很大。求大家提供思路或资料。谢谢!
2 个解决方案
#1
货物应该有ID,类似于1 2 3,或者A B C这样,当然货物的ID是有限范围的,如果这些满足,假设为A-Z这样,
数据结构为
a[ID][2];
输入为货物ID:UID,个数为cnt,则求和为:
a[UID-'A'][0] += cnt;
a[UID-'A'][1]++;
最后的结果为这样的格式:
a[][] = { {200,2},{300,2},{200,1}}
单次遍历即可计算出结果。
数据结构为
a[ID][2];
输入为货物ID:UID,个数为cnt,则求和为:
a[UID-'A'][0] += cnt;
a[UID-'A'][1]++;
最后的结果为这样的格式:
a[][] = { {200,2},{300,2},{200,1}}
单次遍历即可计算出结果。
#2
用switch case或者if else的结构
#1
货物应该有ID,类似于1 2 3,或者A B C这样,当然货物的ID是有限范围的,如果这些满足,假设为A-Z这样,
数据结构为
a[ID][2];
输入为货物ID:UID,个数为cnt,则求和为:
a[UID-'A'][0] += cnt;
a[UID-'A'][1]++;
最后的结果为这样的格式:
a[][] = { {200,2},{300,2},{200,1}}
单次遍历即可计算出结果。
数据结构为
a[ID][2];
输入为货物ID:UID,个数为cnt,则求和为:
a[UID-'A'][0] += cnt;
a[UID-'A'][1]++;
最后的结果为这样的格式:
a[][] = { {200,2},{300,2},{200,1}}
单次遍历即可计算出结果。
#2
用switch case或者if else的结构