+ -
当前位置:首页 → 问答吧 → 一张表中相同ID所用数量总和

一张表中相同ID所用数量总和

时间:2011-11-11

来源:互联网

刚才我问了个这个问题,没解决 
select id,count(id) from TableName group by id

查询结果是
id 数量
1196054 1
3197091 1
3197091 1

怎么写能变成  
id 数量
1196054 1
3197091 2


我现在写成
select id,sum(a.数量) from 
(select id,count(pid) 数量 from TableName GROUP BY id) as a
group by id
结果还是第一次的。


作者: dengyi422   发布时间: 2011-11-11

3197091的可能有空格或其它不能打印的字符

作者: patrickkong   发布时间: 2011-11-11

select id , sum(数量) from TableName group by id

select id , count(1) from TableName group by id

作者: dawugui   发布时间: 2011-11-11

SQL code
select id,sum(数量) from  
from a
group by id

作者: OrchidCat   发布时间: 2011-11-11

我试过了,不行结果还是
1196054 1
3197091 1
3197091 1
这个ID用的是 varchar类型

作者: dengyi422   发布时间: 2011-11-11

引用 4 楼 dengyi422 的回复:
我试过了,不行结果还是
1196054 1
3197091 1
3197091 1
这个ID用的是 varchar类型
你看看这两个3197091是否相同?难不成是编码不统一?

作者: dawugui   发布时间: 2011-11-11

我复制过去的,后面没有空格

作者: dengyi422   发布时间: 2011-11-11

引用 6 楼 dengyi422 的回复:
我复制过去的,后面没有空格
SQL code
create table TableName(id  varchar(20) , 数量 int)
insert into TableName values('1196054', 1)
insert into TableName values('3197091', 1)
insert into TableName values('3197091', 1)
go

select id , sum(数量) from TableName group by id
/*
id                               
-------------------- ----------- 
1196054              1
3197091              2

(所影响的行数为 2 行)
*/

select id , count(1) from TableName group by id
/*
id                               
-------------------- ----------- 
1196054              1
3197091              2

(所影响的行数为 2 行)
*/

drop table TableName


作者: dawugui   发布时间: 2011-11-11

1

引用 7 楼 dawugui 的回复:
引用 6 楼 dengyi422 的回复:
我复制过去的,后面没有空格


SQL code
create table TableName(id varchar(20) , 数量 int)
insert into TableName values('1196054', 1)
insert into TableName values('3197091', 1)
insert int……

作者: yubofighting   发布时间: 2011-11-11

我这个数量并不是添加进去的1 是如果表里面有数据就显示一个数量1 我并没有数量这个字段
id 信息
1196054 XXX XXX X X X X X X X 
3197091 XXX XXX X X X X X X X 
3197091 XXX XXX X X X X X X X 

所以我用select id,count(id) from TableName group by id
我也试了你直接加的表 数量是对的,可我这个就是不知道为什么出不来这个结果
我觉得是个很简单的东西,不知道为什么做不出来啊。

作者: dengyi422   发布时间: 2011-11-11

這樣?

SQL code
select id,count(DISTINCT pid) 数量 from TableName GROUP BY id

作者: roy_88   发布时间: 2011-11-11

我还用了一个视图试了一下
create view aaa 
as 
select id,count(id) 数量 from TableName GROUP BY id
查询结果是
1196054 1 
3197091 1 
3197091 1 

然后用select id , sum(数量) from aaa group by id
结果还是
1196054 1 
3197091 1 
3197091 1 


作者: dengyi422   发布时间: 2011-11-11

看看这样写,你有几条记录?
select * From tablename where id = '3197091'

作者: dawugui   发布时间: 2011-11-11

select rtrim(ltrim(id)),count(id) 数量 from TableName GROUP BY lrtrim(ltrim(id))

這樣試試

作者: roy_88   发布时间: 2011-11-11