TABEL:name 金额
张三 5.00
李四 10.00
王麻子 20.05
张三 8.75
张三 9.90
李四 12.00用group by name 分组后
当然是
name
张三
李四
王麻子但我要得出的是分组后的count,即count=3
请问大家这句SQL语句怎么写?
张三 5.00
李四 10.00
王麻子 20.05
张三 8.75
张三 9.90
李四 12.00用group by name 分组后
当然是
name
张三
李四
王麻子但我要得出的是分组后的count,即count=3
请问大家这句SQL语句怎么写?
insert into @t select '张三' ,5.00
union all select '李四' ,10.00
union all select '王麻子' ,20.05
union all select '张三' ,8.75
union all select '张三' ,9.90
union all select '李四' ,12.00select count(*) from (select name from @t group by name)a
而roy_88和yaoyaomaomao(广州考拉) 中的count无疑还是=6
是不是我的表达不够清楚,我希望这个时候的结果是count=3(即不论发生多少笔业务,但我要统计的是多少个人参与了消费,再返回人名)
但我在软件里应该怎么写呢?我现在正用的不是MSSQL而是mysql,mysql似乎不支持这种写法,我还能怎么写呢?他们后面两者的写法可以怎么改能达到我的目的呢?就是说我既要返回记录总数又要返回每个人名,
先谢谢HaN的耐心指导了。
还请HaN指教。
另在mysql中
select count(*) from (select name from 表 group by name)a 可行select count(*) from (select name from 表 group by name) 报错
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
原因是你的from后面的这个子查询是必要要有一个别名的,这是一个规范
SQLServer也是有这个规范的
而Oracle没有,你可以写也可以不写,但是如果需要子查询的某些字段就必须写
反正,写了是符合规范的就是了,hoho
另外,lz希望如何返回name呢?
SELECT Name, COUNT(*) FROM 表 GROUP BY Name
UNION
SELECT COUNT(DISTINCT Name) FROM 表
declare @t table(name varchar(10),金额 dec(10,2))
insert into @t select '张三' ,5.00
union all select '李四' ,10.00
union all select '王麻子' ,20.05
union all select '张三' ,8.75
union all select '张三' ,9.90
union all select '李四' ,12.00select count(*),name from (select name from @t group by name)a group by nameselect count(distinct name),name from @t group by name--itblog得好啊。学习
lz是要这个效果吗?
SELECT Name, COUNT(*) FROM 表 GROUP BY Name
嘿嘿,我倒是想要记录数+name,但似乎好象一条语句返回不出这个结果来,我现在倒是按照HaN的指导写出结果来了,只是把记录总数和返回name分成了两段查询,看着代码多了总是不爽,有同时返回的办法吗?再次谢谢大家热心关注!为感谢大家的热心,分数增加50分。
itblog(^ω^) 兄台的方法确实不错,详细指导更不错!谢谢兄台了!
from 表 a
group by name
from 表 a
group by name
from 表 a
group by name 这个好象也不能在一个查询表内返回表总记录数和分别的name吧不过问题已经解决了,非常感谢各位!但新的问题出来了我晕~贴子回复总数大于给分次数什么意思,那要怎么给分?好久不来,难道连给分都不会了!!!!!!?????????!·#¥!·#%¥·#¥%#¥%#¥%……#
Select name,count(name) as colname from tablename
group by name having count(name)=3