求一条group by 语句写法 本帖最后由 taijh999 于 2010-10-12 14:47:54 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 回复1楼select sum(jingfei) as 经费,count(*) ,sourceName from source_table s ,t_jingfeiwhere ketilaiyuan=s.sourceid and zhuchirendanwei="01" group by ketilaiyuan+------+----------+----------------+| 经费 | count(*) | sourceName |+------+----------+----------------+| 78 | 1 | 科技部 || 75 | 2 | 农业部 || 6 | 1 | 国家自然基金委 || NULL | 1 | 国家社科基金 |+------+----------+----------------+类似这样的统计功能类别没有的经费和个数都为0 无法理解。 (不要高估你的汉语表达能力或者我的汉语理解能力) 建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。 参考一下这个贴子的提问方式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) 这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。 SELECT b.sourceid,COUNT(a.leibie),COALESCE(SUM(a.jingfei),0) FROM t_jingfei a RIGHT JOIN source_table b ON a.ketilaiyuan=b.sourceid GROUP BY b.sourceid CREATE TABLE t_jingfei (ketibianhao VARCHAR(50) NOT NULL, ketilaiyuan VARCHAR(30) NOT NULL, zhuchirendanwei VARCHAR(30) NOT NULL, zhuchiren VARCHAR(80) NOT NULL, jingfei FLOAT, boruriqi VARCHAR(10), leibie CHAR(2), PRIMARY KEY (ketibianhao));INSERT INTO keyanguanli.t_jingfei (ketibianhao, ketilaiyuan, zhuchirendanwei, zhuchiren, jingfei, boruriqi, leibie) VALUES ('1111', '01', '01', '07008', 78.0, '2008-01-09', '01');INSERT INTO keyanguanli.t_jingfei (ketibianhao, ketilaiyuan, zhuchirendanwei, zhuchiren, jingfei, boruriqi, leibie) VALUES ('222', '02', '02', '07005', 89.0, '2009-01-12', '02');INSERT INTO keyanguanli.t_jingfei (ketibianhao, ketilaiyuan, zhuchirendanwei, zhuchiren, jingfei, boruriqi, leibie) VALUES ('333', '03', '01', '07005', 67.0, '2010-1-2', '01');INSERT INTO keyanguanli.t_jingfei (ketibianhao, ketilaiyuan, zhuchirendanwei, zhuchiren, jingfei, boruriqi, leibie) VALUES ('444', '01', '07', '06007', 89.0, '2010-1-1', '02');INSERT INTO keyanguanli.t_jingfei (ketibianhao, ketilaiyuan, zhuchirendanwei, zhuchiren, jingfei, boruriqi, leibie) VALUES ('666', '08', '07', '07008', 12.0, '2009-1-1', '01');INSERT INTO keyanguanli.t_jingfei (ketibianhao, ketilaiyuan, zhuchirendanwei, zhuchiren, jingfei, boruriqi, leibie) VALUES ('555', '09', '06', '07010', 56.0, '2009-1-1', '02');INSERT INTO keyanguanli.t_jingfei (ketibianhao, ketilaiyuan, zhuchirendanwei, zhuchiren, jingfei, boruriqi, leibie) VALUES ('777', '04', '07', '07020', 66.0, '2008-1-1', '02');INSERT INTO keyanguanli.t_jingfei (ketibianhao, ketilaiyuan, zhuchirendanwei, zhuchiren, jingfei, boruriqi, leibie) VALUES ('88', '07', '04', '09001', 23.0, '2009-1-1', '02');INSERT INTO keyanguanli.t_jingfei (ketibianhao, ketilaiyuan, zhuchirendanwei, zhuchiren, jingfei, boruriqi, leibie) VALUES ('99', '09', '04', '05004', 67.0, '2008-9-9', '02');INSERT INTO keyanguanli.t_jingfei (ketibianhao, ketilaiyuan, zhuchirendanwei, zhuchiren, jingfei, boruriqi, leibie) VALUES ('5', '03', '01', '01', 8.0, '2010', NULL);INSERT INTO keyanguanli.t_jingfei (ketibianhao, ketilaiyuan, zhuchirendanwei, zhuchiren, jingfei, boruriqi, leibie) VALUES ('345', '04', '01', '01', 6.0, '2010', NULL);INSERT INTO keyanguanli.t_jingfei (ketibianhao, ketilaiyuan, zhuchirendanwei, zhuchiren, jingfei, boruriqi, leibie) VALUES ('543', '05', '01', '55', NULL, '2010', NULL);CREATE TABLE source_table (sourceid CHAR(2) NOT NULL, `sourceName` VARCHAR(20), PRIMARY KEY (sourceid));INSERT INTO keyanguanli.source_table (sourceid, `sourceName`) VALUES ('01', '科技部');INSERT INTO keyanguanli.source_table (sourceid, `sourceName`) VALUES ('02', '教育部');INSERT INTO keyanguanli.source_table (sourceid, `sourceName`) VALUES ('03', '农业部');INSERT INTO keyanguanli.source_table (sourceid, `sourceName`) VALUES ('04', '国家自然基金委');INSERT INTO keyanguanli.source_table (sourceid, `sourceName`) VALUES ('05', '国家社科基金');INSERT INTO keyanguanli.source_table (sourceid, `sourceName`) VALUES ('06', '省科技厅');INSERT INTO keyanguanli.source_table (sourceid, `sourceName`) VALUES ('07', '省哲学社科规划办');INSERT INTO keyanguanli.source_table (sourceid, `sourceName`) VALUES ('08', '省教育厅');INSERT INTO keyanguanli.source_table (sourceid, `sourceName`) VALUES ('09', '农垦总局');INSERT INTO keyanguanli.source_table (sourceid, `sourceName`) VALUES ('10', '大庆市科技局');INSERT INTO keyanguanli.source_table (sourceid, `sourceName`) VALUES ('11', '开发区经济科技局');+------------------+----------+------+| sourceName | 课题个数 | 经费 |+------------------+----------+------+| 科技部 | 2 | 167 || 教育部 | 1 | 89 || 农业部 | 2 | 75 || 国家自然基金委 | 2 | 72 || 国家社科基金 | 1 | 0 || 省科技厅 | 0 | 0 || 省哲学社科规划办 | 1 | 23 || 省教育厅 | 1 | 12 || 农垦总局 | 2 | 123 || 大庆市科技局 | 0 | 0 || 开发区经济科技局 | 0 | 0 |+------------------+----------+------+我根据4楼的做出来了SELECT b.sourceName, COUNT(a.ketilaiyuan) as 课题个数,COALESCE(SUM(a.jingfei),0) as 经费 FROM t_jingfei a RIGHT JOIN source_table b ON a.ketilaiyuan=b.sourceid GROUP BY b.sourceid请您多指教 mysql insert语句 怎么存储一维数组变量 MySql 存储过程的语法 MYSQL 触发器问题 avg_row_length 的问题 mysql 关于临时表的问题 一条update语句 对字符200以内的标题进行单一关键词搜索,效率最高的方案是。。。 mysql使用的sql语句叫什么 pg 提问 , 我想把 每条数据里 的 每个字段内容 全角,或者半角里的空格去掉,我该则么做?(急) 请教一个关于Group By的排序问题 mysql连接不上了 如何查看mysqld的命令选项
select sum(jingfei) as 经费,count(*) ,sourceName from source_table s ,t_jingfei
where ketilaiyuan=s.sourceid and zhuchirendanwei="01" group by ketilaiyuan
+------+----------+----------------+
| 经费 | count(*) | sourceName |
+------+----------+----------------+
| 78 | 1 | 科技部 |
| 75 | 2 | 农业部 |
| 6 | 1 | 国家自然基金委 |
| NULL | 1 | 国家社科基金 |
+------+----------+----------------+
类似这样的统计功能
类别没有的经费和个数都为0
建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
参考一下这个贴子的提问方式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 t_jingfei a RIGHT JOIN source_table b ON a.ketilaiyuan=b.sourceid
GROUP BY b.sourceid
ketilaiyuan VARCHAR(30) NOT NULL,
zhuchirendanwei VARCHAR(30) NOT NULL,
zhuchiren VARCHAR(80) NOT NULL, jingfei FLOAT,
boruriqi VARCHAR(10), leibie CHAR(2), PRIMARY KEY (ketibianhao));INSERT INTO keyanguanli.t_jingfei (ketibianhao, ketilaiyuan, zhuchirendanwei, zhuchiren, jingfei, boruriqi, leibie) VALUES ('1111', '01', '01', '07008', 78.0, '2008-01-09', '01');
INSERT INTO keyanguanli.t_jingfei (ketibianhao, ketilaiyuan, zhuchirendanwei, zhuchiren, jingfei, boruriqi, leibie) VALUES ('222', '02', '02', '07005', 89.0, '2009-01-12', '02');
INSERT INTO keyanguanli.t_jingfei (ketibianhao, ketilaiyuan, zhuchirendanwei, zhuchiren, jingfei, boruriqi, leibie) VALUES ('333', '03', '01', '07005', 67.0, '2010-1-2', '01');
INSERT INTO keyanguanli.t_jingfei (ketibianhao, ketilaiyuan, zhuchirendanwei, zhuchiren, jingfei, boruriqi, leibie) VALUES ('444', '01', '07', '06007', 89.0, '2010-1-1', '02');
INSERT INTO keyanguanli.t_jingfei (ketibianhao, ketilaiyuan, zhuchirendanwei, zhuchiren, jingfei, boruriqi, leibie) VALUES ('666', '08', '07', '07008', 12.0, '2009-1-1', '01');
INSERT INTO keyanguanli.t_jingfei (ketibianhao, ketilaiyuan, zhuchirendanwei, zhuchiren, jingfei, boruriqi, leibie) VALUES ('555', '09', '06', '07010', 56.0, '2009-1-1', '02');
INSERT INTO keyanguanli.t_jingfei (ketibianhao, ketilaiyuan, zhuchirendanwei, zhuchiren, jingfei, boruriqi, leibie) VALUES ('777', '04', '07', '07020', 66.0, '2008-1-1', '02');
INSERT INTO keyanguanli.t_jingfei (ketibianhao, ketilaiyuan, zhuchirendanwei, zhuchiren, jingfei, boruriqi, leibie) VALUES ('88', '07', '04', '09001', 23.0, '2009-1-1', '02');
INSERT INTO keyanguanli.t_jingfei (ketibianhao, ketilaiyuan, zhuchirendanwei, zhuchiren, jingfei, boruriqi, leibie) VALUES ('99', '09', '04', '05004', 67.0, '2008-9-9', '02');
INSERT INTO keyanguanli.t_jingfei (ketibianhao, ketilaiyuan, zhuchirendanwei, zhuchiren, jingfei, boruriqi, leibie) VALUES ('5', '03', '01', '01', 8.0, '2010', NULL);
INSERT INTO keyanguanli.t_jingfei (ketibianhao, ketilaiyuan, zhuchirendanwei, zhuchiren, jingfei, boruriqi, leibie) VALUES ('345', '04', '01', '01', 6.0, '2010', NULL);
INSERT INTO keyanguanli.t_jingfei (ketibianhao, ketilaiyuan, zhuchirendanwei, zhuchiren, jingfei, boruriqi, leibie) VALUES ('543', '05', '01', '55', NULL, '2010', NULL);
CREATE TABLE source_table (sourceid CHAR(2) NOT NULL, `sourceName` VARCHAR(20), PRIMARY KEY (sourceid));INSERT INTO keyanguanli.source_table (sourceid, `sourceName`) VALUES ('01', '科技部');
INSERT INTO keyanguanli.source_table (sourceid, `sourceName`) VALUES ('02', '教育部');
INSERT INTO keyanguanli.source_table (sourceid, `sourceName`) VALUES ('03', '农业部');
INSERT INTO keyanguanli.source_table (sourceid, `sourceName`) VALUES ('04', '国家自然基金委');
INSERT INTO keyanguanli.source_table (sourceid, `sourceName`) VALUES ('05', '国家社科基金');
INSERT INTO keyanguanli.source_table (sourceid, `sourceName`) VALUES ('06', '省科技厅');
INSERT INTO keyanguanli.source_table (sourceid, `sourceName`) VALUES ('07', '省哲学社科规划办');
INSERT INTO keyanguanli.source_table (sourceid, `sourceName`) VALUES ('08', '省教育厅');
INSERT INTO keyanguanli.source_table (sourceid, `sourceName`) VALUES ('09', '农垦总局');
INSERT INTO keyanguanli.source_table (sourceid, `sourceName`) VALUES ('10', '大庆市科技局');
INSERT INTO keyanguanli.source_table (sourceid, `sourceName`) VALUES ('11', '开发区经济科技局');
+------------------+----------+------+
| sourceName | 课题个数 | 经费 |
+------------------+----------+------+
| 科技部 | 2 | 167 |
| 教育部 | 1 | 89 |
| 农业部 | 2 | 75 |
| 国家自然基金委 | 2 | 72 |
| 国家社科基金 | 1 | 0 |
| 省科技厅 | 0 | 0 |
| 省哲学社科规划办 | 1 | 23 |
| 省教育厅 | 1 | 12 |
| 农垦总局 | 2 | 123 |
| 大庆市科技局 | 0 | 0 |
| 开发区经济科技局 | 0 | 0 |
+------------------+----------+------+
我根据4楼的做出来了
SELECT b.sourceName, COUNT(a.ketilaiyuan) as 课题个数,COALESCE(SUM(a.jingfei),0) as 经费
FROM t_jingfei a RIGHT JOIN source_table b ON a.ketilaiyuan=b.sourceid
GROUP BY b.sourceid
请您多指教