SELECT a.broadband AS Maxbroadband, a.`datetime` AS Maxbroadbandtime,DATE(a.DATETIME) AS `date`, (SELECT SUM(`BroadBand`) FROM `broadbandstat` WHERE DATE(a.DATETIME)=DATE(DATETIME)) AS sumbroadband FROM `broadbandstat` a WHERE NOT EXISTS(SELECT 1 FROM `broadbandstat` WHERE DATE(a.DATETIME)=DATE(DATETIME) AND a.`BroadBand`<`BroadBand`) ;
select date(a),max(b),max(a)
from 表结构
group by date(a)
建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html
1. 你的 create table xxx .. 语句
2. 你的 insert into xxx ... 语句
3. 结果是什么样,(并给以简单的算法描述)
4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)
这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。
from tb
where b in (
select max(b)
from tb
)
`id` varchar(50) collate utf8_bin NOT NULL,
`DateTime` datetime default NULL,
`BroadBand` bigint(20) default NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
INSERT INTO `broadbandstat` (`id`, `DateTime`, `BroadBand`) VALUES
('2c9013cc2e7959a3012e79c8ffd10002', '2011-03-03 11:35:22', 1),
('2c9013cc2e7959a3012e79c96a330003', '2011-02-27 11:35:22', 2),
('2c9013cc2e7959a3012e79c976fb0004', '2011-02-28 11:35:22', 133760),
('2c9013cc2e7af87b012e7b0e16210002', '2011-03-02 22:22:22', 59),
('2c9013cc2e7b47f5012e7b4de1ad0002', '2011-03-03 13:22:22', 270520),
('2c9013cc2e7b47f5012e7b5ee1e80003', '2011-03-27 13:22:22', 44)/*
要得到这样的结果:每天的最大broadband,最大broadband所处的时间,以及每天的broadband总和
date Maxbroadband Maxbroadbandtime sumbroadband
2011-02-27 44 2011-03-27 13:22:22 44
2011-03-03 270520 2011-03-03 13:22:22 270521
*/
MYsql板块当然是Mysql咯 5.0
2011-02-27 44 2011-03-27 13:22:22 44
2011-03-03 270520 2011-03-03 13:22:22 270521 这个红色的记录怎么出来的? 建议楼主举例的进修一定要仔细,否则错误的例子很难得到正确的回复。
另外其它日期是通过什么算法不取的?比如为什么2011-03-02的记录不取?这段话是复制的通用的,经常会贴在任何一个数据库的版本中。
a.`datetime` AS Maxbroadbandtime,DATE(a.DATETIME) AS `date`,
(SELECT SUM(`BroadBand`) FROM `broadbandstat` WHERE DATE(a.DATETIME)=DATE(DATETIME)) AS sumbroadband FROM `broadbandstat` a
WHERE NOT EXISTS(SELECT 1 FROM `broadbandstat` WHERE DATE(a.DATETIME)=DATE(DATETIME) AND a.`BroadBand`<`BroadBand`)
;
你的好像可以 我在研究下你的sql谢谢哈
http://topic.csdn.net/u/20090501/15/7548d251-aec2-4975-a9bf-ca09a5551ba5.html
http://topic.csdn.net/u/20100428/09/BC9E0908-F250-42A6-8765-B50A82FE186A.html
http://topic.csdn.net/u/20100626/09/f35a4763-4b59-49c3-8061-d48fdbc29561.html8、如何给分和结贴?
http://community.csdn.net/Help/HelpCenter.htm#结帖