1. 程式人生 > >sql面試體 --分組 查詢--4

sql面試體 --分組 查詢--4

面試題:怎麼把這樣一個表兒
year  month amount
1991   1     1.1
1991   2     1.2
1991   3     1.3
1991   4     1.4
1992   1     2.1
1992   2     2.2
1992   3     2.3
1992   4     2.4
查成這樣一個結果
year m1  m2  m3  m4
1991 1.1 1.2 1.3 1.4
1992 2.1 2.2 2.3 2.4 

create table mes (year varchar(22), mouth varchar(22), amount double);
insert into mes values('1991','1',1.1);
insert into mes values('1991','2',1.2);
insert into mes values('1991','3',1.3);
insert into mes values('1991','4',1.4);
insert into mes values('1992','1',2.1);
insert into mes values('1992','2',2.2);
insert into mes values('1992','3',2.3);
insert into mes values('1992','4',2.4);


select m.year, 
(select m1.amount from mes m1 where m1.mouth='1' and m1.year = m.year) a1 ,
(select m2.amount from mes m2 where m2.mouth='2' and m2.year = m.year) a2 ,
(select m3.amount from mes m3 where m3.mouth='3' and m3.year = m.year) a3 ,
(select m4.amount from mes m4 where m4.mouth='4' and m4.year = m.year) a4 
from mes m group by year;


相關推薦

sql面試 --分組 查詢--4

面試題:怎麼把這樣一個表兒 year  month amount 1991   1     1.1 1991   2     1.2 1991   3     1.3 1991   4     1.4 1992   1     2.1 1992   2     2.2 19

SQL group by分組查詢

create server insert 一定的 ID all 註意 至少 滿足 本文導讀:在實際SQL應用中,經常需要進行分組聚合,即將查詢對象按一定條件分組,然後對每一個組進行聚合分析。創建分組是通過GROUP BY子句實現的。與WHERE子句不同,GROUP BY

sql 按日期分組查詢

在SQL server資料的日期型別中,長日期和短日期型別都是儲存有時間的,而SQL server並沒有什麼函式 可以把日期分離出來。 可以把日期分離出來。曾碰到不少對日期進行分組統計的需求。剛開始我是用datepart函式把年月日讀取 出來按年月日順序排成字串,然後再對其進行分組,這樣明顯就寫出了又臭又長

SQL按照日期分組查詢

1. 按照天統計分組 --按照天統計3 select b.data_time,isnull(a.val,0) as val from ( select convert(varchar(10),dateadd(DAY,number,'2018-08-01'),120) a

資料庫排名sql,group by 分組查詢按照時間最大值

先給出類似的簡單表 DROP TABLE IF EXISTS `TouTiaoAnchor`; CREATE TABLE `TouTiaoAnchor` ( `HourId` int(10) unsigned NOT NULL, `BetinTime` varcha

sql面試-查詢選修課程的學生

名單 模式 面試 至少 含義 select cname base .html 首先: 1 。 EXISTS 子查詢找到的提交 NOT EXISTS 子查詢中 找不到的提交 說明:不要去翻譯為存在和不存在,把腦袋搞暈。 2

sql分組查詢和連接查詢

avi rop select 連接 where子句 統計 表連接 聚合 where 分組查詢select 查詢信息 from 表名where 條件group by 按照列分組(可多個 ,隔開)order by 排序方式(查詢信息如果列名和聚合函數同時出現,要麽在聚合函數中出

sql server 分組查詢結合日期模糊查詢

.html 分組查詢 group lan 字符 max tar getdate ref 分組查詢: https://www.cnblogs.com/netserver/p/4518995.html 日期格式化格式: http://blog.csdn.net/qq_16769

SQL分組查詢

lse SQ mount IT ken sum sign nth CA --按半年分組查詢數據SELECT SUM(CONVERT(DECIMAL(18,2),TradeArea)) SumArea,SUM(convert(decimal(18,2),TradeTotalP

sql實現分組查詢

DROP TABLE IF EXISTS testor;CREATE TABLE testor (id int(11) NOT NULL,name varchar(255) DEFAULT NULL,crdate datetime DEF

My SQL Case_4: 分組查詢練習

分組查詢: 對資料來源中的資料按照某種類別進行分類之後再操作 定義分組查詢的關鍵字:group by 列名 分組一般是跟聚合函式一起配合使用 having 用於對分組後的結果進行過濾 資料來源(emp表): 以下sql會查詢到每一組中的第

BBS--功能4:個人站點頁面設計(ORM跨表與分組查詢

.html closed have god trunc font .cn userinfo mon 查詢: 日期歸檔查詢 1 date_format ============date,time,datetime=========

原生SQL分組查詢

SELECT t.time, COUNT(t.time) count FROM ( SELECT substring(alarm.occurtime, 1, 10) time, alarm.equiprecorddwid dwid, alarm.alarmmode,

SQL 根據一個欄位的一部分分組查詢

背景 遇到問題:一個表中的一個欄位表示行業分類(該欄位是個程式碼值,如10100代表大類[農、林、牧、漁業],0101,0102,0103,0104分別代表小類[農業,林業,畜牧業,漁業]),現在需要根據行業大類分組,統計各行業的人數。 行業程式碼表如下: select

Oracle 高階查詢sql DECODE函式 分組函式

計算職位的人數,其中,“ANALYST”和“MANAGER”職位用“VIP”表示,其餘是普通員工,職位用“OPERATION”顯示。分別計算VIP職位和普通職員職位的人數,資料顯示效果如圖-1所示。 步驟一:使用DECODE函式,按要求顯示資料 使用DECODE函式,計算職

SQL--分組查詢

select object,max(number) from user GROUP BY object Select * from user where id in(select id from user GROUP BY object ORDER BY number) -- 不知是對好是錯 select

elasticsearch xpack sql group by 如何對時間按年月日進行分組查詢

ES從6.3開始已經支援SQL了,當然還有很多不完善的地方,比如對於巢狀查詢,連表查詢,但是對於單表而言,提供的SQL已經基本夠用了。 這裡只講一下我在實際業務中遇到的一個問題,運營那邊想要對時間進行分組查詢,可以按年或是月或是日進行分組,為了能滿足運營那邊的要求,自己研究

sql語句分組查詢排序後取出前n條記錄

1.sql語句分組排序後取出前n條記錄 (SELECT * FROM ( SELECT "row_number" () OVER ( PARTITION BY mmsi ORDER BY orginal_in_draught DESC ) A

SQL分組查詢,結果只取最新記錄

 select a.* from (select * from TABLE order by create_time desc) a group by a.user_id 這裡查詢的是USER_ID相

Oracle sql按年、月、周等,分組查詢資料

oracle sql 按年、月、周、日,分組查詢統計資料: 1、SQL語句如下 select sum(count),to_char(to_date(ext2,'YYYY-MM-dd'),'iw') from CMS_INDEXPV where site_