編號 國家 數量 類別
001 中國 100 a
002 中國 300 b
003 中國 400 c
004 美國 200 a
005 美國 100 b
006 美國 50 c
007 中國 110 a
008 美國 80 b
一條sql語句生成以下結果:
國家 a總數 b總數 c總數
中國 210 300 400
美國 200 180 50
oracle 寫法(正確,試用了):
select countryname, sum(decode(classid,'a',qty)) as aqty,sum(decode(classid,'b',qty)) as bqty ,sum(decode(classid,'c',qty)) as cqty from mian where countryname in ('中國','美國') group by countryname
sqlserver 寫法(正確,試用了)
select countryname as 國家, sum(case classid when 'a' then qty else 0 end) as au1, sum(case classid when 'b' then qty else 0 end) as au2, sum(case classid when 'c' then qty else 0 end) as au3from class_tablegroup by countryname
sql的行轉列
在弄資料包表的時候,我們常常會用到這個需求。在mysql中行轉列 新建乙個表,學生名字,課程,分數 drop table if exists student create table student username varchar 20 subjects varchar 20 score int ...
sql 行轉列問題
題目 下表tproduct某產品在各城市各月銷量情況 city name month no 月 qut qty 臺 杭州 9 100 杭州 10 120 上海 9 130 上海 10 140 請寫sql實現 如下查詢 city 9月銷量 10月銷量 杭州 100 120 上海 130 140 答案一...
SQL 行轉列總結
行轉列應該使用case 想要把某個行轉成列的列名 when 裡將各個列的值放進去 then 分組後某個值要進行彙總行 else 0 end 動態生成的話,將想要用的轉的,用selec查出來拼成以上格式就可以了 declare sql varchar 8000 如果大於8000只能用程式去拼乙個sql...