使用条件查询Sum和Group

时间:2012-11-29 16:00:18

标签: java database

我有下表:

Order(idOrder, address, cap, price, quantity, date, idProduct, idUser, idCountry)

现在,我想要一个具有相同字段的表,其中字段数量是idProduct相同数量的总和。

例如,如果我有以下元组:

1, street1, 123, 4, 6, 2000-12-12, 1, 2, 3
2, street1, 123, 4, 1, 2000-12-12, 2, 2, 2
3, street1, 123, 4, 5, 2000-12-12, 2, 2, 2
4, street1, 123, 4, 1, 2000-12-12, 4, 2, 2

我希望:

1, street1, 123, 4, 6, 2000-12-12, 1, 2, 3
2, street1, 123, 4, 6, 2000-12-12, 2, 2, 2
4, street1, 123, 4, 1, 2000-12-12, 4, 2, 2

我必须使用Criteria

2 个答案:

答案 0 :(得分:0)

假设是休眠:您需要使用投影来按标准应用组。

示例:

    Criteria crit = session.createCriteria(Order.class);
    ProjectionList projList = Projections.projectionList();
    projList.add(Projections.groupProperty("quantity"));

    crit.setProjection(projList);

有关详细信息,请参阅此examplesum example

答案 1 :(得分:0)

对新表使用group by运算符...(如果问题特定于DB ...)

INSERT INTO NEW_TABLE (ID(may be auto generated), Select address, cap, price, sum(quantity), date, idProduct, idUser, idCountry from old_table group by address, cap, price, date, idProduct, idUser, idCountry )