SELECT SUM(population),
CASE country
WHEN '中国' THEN '亚洲'
WHEN '印度' THEN '亚洲'
WHEN '日本' THEN '亚洲'
WHEN '美国' THEN '北美洲'
WHEN '加拿大' THEN '北美洲'
WHEN '墨西哥' THEN '北美洲'
ELSE '其他' END
FROM Table_A
GROUP BY CASE country
WHEN '中国' THEN '亚洲'
WHEN '印度' THEN '亚洲'
WHEN '日本' THEN '亚洲'
WHEN '美国' THEN '北美洲'
WHEN '加拿大' THEN '北美洲'
WHEN '墨西哥' THEN '北美洲'
ELSE '其他' END;
這樣如果執行下來不就是 ..... group by '亞洲' 或者 group by '北美洲' 嗎? 難倒分組還可以使用值? 好像不行吧!請大家賜教!!!!
CASE country
WHEN '中国' THEN '亚洲'
WHEN '印度' THEN '亚洲'
WHEN '日本' THEN '亚洲'
WHEN '美国' THEN '北美洲'
WHEN '加拿大' THEN '北美洲'
WHEN '墨西哥' THEN '北美洲'
ELSE '其他' END
FROM Table_A
GROUP BY CASE country
WHEN '中国' THEN '亚洲'
WHEN '印度' THEN '亚洲'
WHEN '日本' THEN '亚洲'
WHEN '美国' THEN '北美洲'
WHEN '加拿大' THEN '北美洲'
WHEN '墨西哥' THEN '北美洲'
ELSE '其他' END;
這樣如果執行下來不就是 ..... group by '亞洲' 或者 group by '北美洲' 嗎? 難倒分組還可以使用值? 好像不行吧!請大家賜教!!!!
WHEN '中国' THEN '亚洲'
WHEN '印度' THEN '亚洲'
WHEN '日本' THEN '亚洲'
WHEN '美国' THEN '北美洲'
WHEN '加拿大' THEN '北美洲'
WHEN '墨西哥' THEN '北美洲'
ELSE '其他' END进行计算,然后殷实计算结果进行分组。
insert @table select 1,'a' union all
select 2,'b'
gocreate trigger tri
on @table
for update
ason @table 這裡怎麼有錯誤呢??? 那個group by 還是有點不懂....
on @table
for update
as
on @table 這裡怎麼有錯誤呢??? 那個group by 還是有點不懂....
表变量能有触发器?
SELECT population,
CASE country
WHEN '中国' THEN '亚洲'
WHEN '印度' THEN '亚洲'
WHEN '日本' THEN '亚洲'
WHEN '美国' THEN '北美洲'
WHEN '加拿大' THEN '北美洲'
WHEN '墨西哥' THEN '北美洲'
ELSE '其他' END
FROM Table_A你先不SUM看看这个结果吧
WHEN '中国' THEN '亚洲'
WHEN '印度' THEN '亚洲'
WHEN '日本' THEN '亚洲'
WHEN '美国' THEN '北美洲'
WHEN '加拿大' THEN '北美洲'
WHEN '墨西哥' THEN '北美洲'
ELSE '其他' END;大家就說說,這個返回個什麽吧.. 每次執行完成以後數據庫真實的列是什麽???
CASE country
WHEN '中国' THEN '亚洲'
WHEN '印度' THEN '亚洲'
WHEN '日本' THEN '亚洲'
WHEN '美国' THEN '北美洲'
WHEN '加拿大' THEN '北美洲'
WHEN '墨西哥' THEN '北美洲'
ELSE '其他' END AS GRP
FROM Table_A你先看看这个返回什么,要不然你再把它子查询一次再GROUP BY ,明白?
CASE country
WHEN '中国' THEN '亚洲'
WHEN '印度' THEN '亚洲'
WHEN '日本' THEN '亚洲'
WHEN '美国' THEN '北美洲'
WHEN '加拿大' THEN '北美洲'
WHEN '墨西哥' THEN '北美洲'
ELSE '其他' END AS GRP
FROM Table_A這個返回將中國,印度, 換成了 亞洲. .....
600 亚洲
100 北美洲
100 北美洲
200 其他
300 其他
250 亚洲
200 其他
50 北美洲
250 亚洲
100 北美洲
300 其他
600 亚洲這個我我知道.. 但是再去group by 我實在就不知道他是按照那一列去分組的. 因為 group by
CASE name
WHEN '中国' THEN '亚洲'
WHEN '印度' THEN '亚洲'
WHEN '日本' THEN '亚洲'
WHEN '美国' THEN '北美洲'
WHEN '加拿大' THEN '北美洲'
WHEN '墨西哥' THEN '北美洲'
ELSE '其他' END他確實返回的是一個字符嘛! 又不是列.....
呵呵!! 請大家指教!!
汗,每一个NAME返回一个相对应的字符100 北美洲
300 其他
600 亚洲再分组不就是按后面的那个 统计了吗,其实只是另外生成的一列而已
declare @table table (name varchar(20),po int)
insert into @table select
'中国',600 union all
select '美国',100 union all
select '加拿大', 100 union all
select '英国' , 200 union all
select '法国' , 300 union all
select '日本' , 250 union all
select '德国' , 200 union all
select '墨西哥' , 50 union all
select '印度' , 250 SELECT max(po),
CASE name
WHEN '中国' THEN '亚洲'
WHEN '印度' THEN '亚洲'
WHEN '日本' THEN '亚洲'
WHEN '美国' THEN '北美洲'
WHEN '加拿大' THEN '北美洲'
WHEN '墨西哥' THEN '北美洲'
ELSE '其他' END
FROM @table group by
CASE name
WHEN '中国' THEN '亚洲'
WHEN '印度' THEN '亚洲'
WHEN '日本' THEN '亚洲'
WHEN '美国' THEN '北美洲'
WHEN '加拿大' THEN '北美洲'
WHEN '墨西哥' THEN '北美洲'
ELSE '其他' END 替換成一個固定的,應該怎麼寫?????
insert into @table select
'中国',600 union all
select '美国',100 union all
select '加拿大', 100 union all
select '英国' , 200 union all
select '法国' , 300 union all
select '日本' , 250 union all
select '德国' , 200 union all
select '墨西哥' , 50 union all
select '印度' , 250 select
a.continent,
sum(PO)
from
(SELECT
name,
PO,
CASE name
WHEN '中国' THEN '亚洲'
WHEN '印度' THEN '亚洲'
WHEN '日本' THEN '亚洲'
WHEN '美国' THEN '北美洲'
WHEN '加拿大' THEN '北美洲'
WHEN '墨西哥' THEN '北美洲'
ELSE '其他' END as continent
FROM @table) a
group by a.continent
现在他想统计的是各个洲的人口数量
group by使用时该如何用呢?
通过case when then来达到转换的目的,通过case把国家显示时转换成了各个洲。
另外case是个整体。后面必须要跟when then else 这个模式================================
这个是我的理解,如果有错误希望可以指出来
group by 後面返回的是值啦,,, 並不是一個列.. 我就不懂了,這也能分組??
select
case country
when '中国' then '亚洲'
when '印度' then '亚洲'
when '日本' then '亚洲'
when '美国' then '北美洲'
when '加拿大' then '北美洲'
else '其它'
end as '名称'
,sum([population]) as '总人口'
from dbo.Population
group by
case country
when '中国' then '亚洲'
when '印度' then '亚洲'
when '日本' then '亚洲'
when '美国' then '北美洲'
when '加拿大' then '北美洲'
else '其它'
end 可以实现的,不是直接使用值,而是通过一个虚似的列来进行分组