读书人

请问mysql有关问题

发布时间: 2012-09-25 09:55:58 作者: rapoo

请教mysql问题
CREATE TABLE ab(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
aid INT,
num INT
) ;

INSERT INTO ab VALUES(1, 1, 10);
INSERT INTO ab VALUES(2, 2, 12);
INSERT INTO ab VALUES(3, 3, 1);
INSERT INTO ab VALUES(4, 1, 12);
INSERT INTO ab VALUES(5, 2, 13);
INSERT INTO ab VALUES(6, 3, 14);
INSERT INTO ab VALUES(7, 4, 20);
INSERT INTO ab VALUES(8, 1, 1);
INSERT INTO ab VALUES(9, 2, 2);
INSERT INTO ab VALUES(10, 3, 18);
INSERT INTO ab VALUES(11, 5, 12);
INSERT INTO ab VALUES(12, 2, 13);

SELECT SUM(NUM) FROM AB A WHERE NOT EXISTS(SELECT 1 FROM AB WHERE (A.AID=AID AND A.NUM<NUM)
OR (A.`aid`=AID AND A.`num`=NUM AND A.`id`<ID))
可以得到不同用户最大数量之和,同时避免重复数量的多次统计,如果在表中再加一个字段,如时间,现在需要统计某个时间段的值,该hql如何编写????

[解决办法]
HQL的不会,顶下。
[解决办法]
加distinct关键字过滤相同的内容.

[解决办法]
查询2011年间的
select aid,max(num) from ab where dd < '2011-12-31' and dd>'2011-1-1' group by aid;

读书人网 >Java相关

热点推荐