假设我有这样的数据集:
MONTH REGION SALES
NOV_2011 North 15000
NOV_2011 North 15000
OCT_2010 West 14000
NOV_2011 North 15000
OCT_2010 West 14000
OCT_2010 West 7000
APR_2010 North 3000
DEC_2011 South 24000
APR_2010 North 9000
我希望按月和地区获得销售额。
MONTH REGION SALES
APR_2010 North 12000
DEC_2011 South 24000
NOV_2011 North 45000
OCT_2010 West 35000
如果这个数据在关系表中,我可以轻松编写一个sql来获得答案。所有数据库几乎可以立即给出答案(当然取决于数量,索引等)。 我想使用C ++工具来进行这种计算,因为有时候这个任务不值得添加一个sql库。 是否有数据结构算法可以使这些任务更容易?
答案 0 :(得分:0)
您可以使用std::map
为列中的键构建索引表。
一个问题是您的数据包含重复的行。例如,其中month == NOV_2011和region == North和Sales == 15000.这使得使用std::map
不切实际,因为您必须将Value作为列表或其他容器(一个关键项,a每个键条目的行索引容器。)
大多数数据库设计人员通过重新设计表中的数据来加快访问速度。搜索“关系数据库规范化”。