主頁 > 資料庫 > Oracle進階(三)常用函式

Oracle進階(三)常用函式

2021-04-26 12:21:28 資料庫

目錄

1、聚合函式

2、轉換函式

3、字符函式

4、數值函式

5、日期函式

6、判斷函式

7、分析函式

附表

1、聚合函式

常用的SQL 聚合函式有5個:最大(MAX) 最小(MIN) 平均(AVG) 總和(SUM) 求數(COUNT)

--一、聚合函式 基本語法

--MAX|MIN|AVG|SUM|COUNT (DISTINCT|ALL)

--其它聚合函式 類似,但中位數 DISTINCT會提示錯誤:DISTINCT 選項在此函式中禁用,
SELECT MAX(DISTINCT SAL) FROM EMP;
SELECT MAX(SAL) FROM EMP

--二、聚合函式 常見需求:

--1、查詢EMP表里所有部門的名稱和最高工資

SELECT E.DEPTNO,D.DNAME,MAX(E.SAL) 
FROM EMP E 
LEFT JOIN DEPT D 
ON E.DEPTNO = D.DEPTNO
GROUP BY E.DEPTNO,D.DNAME;

--2、查詢EMP表里所有部門的名稱和最低工資

SELECT E.DEPTNO,D.DNAME,MAX(E.SAL),MIN(E.SAL) 
FROM EMP E 
LEFT JOIN DEPT D 
ON E.DEPTNO = D.DEPTNO
GROUP BY E.DEPTNO,D.DNAME;

--3、計算EMP表里超過1人的每個部門

SELECT E.DEPTNO,COUNT(*) 
FROM EMP E
GROUP BY DEPTNO
HAVING COUNT(*) > 1;

--4、 查詢EMP表里每個部門的匯總工資

SELECT E.DEPTNO,SUM(E.SAL) AS 工資總和 
FROM EMP E
GROUP BY DEPTNO
HAVING COUNT(*) > 1;

--5、查詢EMP表里每個部門的平均薪酬

SELECT E.DEPTNO,AVG(E.SAL) AS 平均工資
FROM EMP E
GROUP BY DEPTNO
HAVING COUNT(*) > 1;

--其它:標準差(STDDEV) 協方差(VARIANCE) 中位數(MEDIAN) 

2、轉換函式

常用的SQL 轉換函式有3個:

TO_CHAR():將DATE或者NUMBER轉換為字串
TO_DATE():將NUMBER、CHAR轉換為DATE
TO_NUMBER():將CHAR轉換為NUMBER

--1、TO_CHAR():將DATE或者NUMBER轉換為字串

 SELECT TRUNC(TO_DATE(SYSDATE),'Y') FROM DUAL;
 SELECT TO_CHAR(DATE'2021-04-25','YYYY') FROM DUAL;  -- 年
 SELECT TO_CHAR(DATE'2021-04-25','YYYYMM') FROM DUAL; -- 年月
 SELECT TO_CHAR(DATE'2021-04-25','WW') FROM DUAL;     -- 第17周
 SELECT TO_CHAR(DATE'2021-04-25','IW') FROM DUAL;     -- 第16周(自然周)
 SELECT TO_CHAR(DATE'2021-04-25','Q') FROM DUAL;     -- 第2季度
 SELECT TO_CHAR(DATE'2021-04-25','MM') FROM DUAL;    -- 月
 SELECT TO_CHAR(DATE'2021-04-25','DD') FROM DUAL;    -- 日
 SELECT TO_CHAR(DATE'2021-04-25','D') FROM DUAL;       --本周第幾天(星期天為第一天)

--2、 TO_DATE():將NUMBER、CHAR轉換為DATE

--注:Date 強制轉換,要有'-'才能轉換,數字只會出現錯誤
--注:字符或數字中的年月日必須是日期范圍內的值
--注:字符日期中有-或/轉化為日期型別必須加-或/   

  SELECT DATE'2021-01-01' FROM DUAL;  -- 強制轉換為日期格式
  SELECT TO_DATE('2021-01-01','YYYY/MM/DD') FROM DUAL;
  SELECT TO_DATE('2021-01-01','YYYY-MM-DD') FROM DUAL;
  SELECT TO_DATE('2021-01-01','YYYYMMDD') FROM DUAL;  -- 錯誤:無效的月份
  SELECT TO_DATE('2021-13-08','YYYY-MM-DD'),TO_DATE(20210732,'YYYY-MM-DD') FROM DUAL;-- 錯誤:無效的月份
  SELECT TO_DATE('2021-07-08','YYYYMMDD') FROM DUAL;-- 錯誤:無效的月份
  SELECT TO_DATE(20210708,'YYYY-MM-DD')  FROM DUAL;

--3、 TO_NUMBER():將CHAR轉換為NUMBER

  SELECT TO_NUMBER('1 2') FROM DUAL;--錯誤:無效數字
  SELECT TO_NUMBER(' 12') FROM DUAL;
  SELECT TO_NUMBER('12 ') FROM DUAL;
  SELECT TO_NUMBER(' 12 ') FROM DUAL;
  SELECT TO_NUMBER('12D') FROM DUAL;--錯誤:無效數字

  SELECT  TO_NUMBER(TO_DATE(20210425,'YYYYMMDD')) FROM DUAL;  --錯誤:無效數字
  SELECT  TO_NUMBER(TO_CHAR(TO_DATE(20210425,'YYYYMMDD'),'YYYYMMDD')) FROM DUAL; 

3、字符函式

--字符函式

--1 ASCII 回傳引數的十進制數字表示
SELECT ASCII('A') FROM DUAL; --65

--2 CHR 回傳引數的代碼所指定的字符
SELECT CHR(65) FROM DUAL;  --A

--3 CONCAT 回傳arg1與arg2的拼接結果
SELECT CONCAT('ABC','DEF') FROM DUAL; --ABCDEF

--4 INITCAP 將引數arg1每個單詞的首字母大寫
SELECT INITCAP('yi er shan ren') FROM DUAL; --Yi Er Shan Ren

--5 INSTR(arg1,子字串,開始檢索的位置,搜索第幾次出現子字串)
--從左面第1個字符開始搜索,第一次出現ABC的位置
SELECT INSTR('HABCHABC','ABC',1,1) FROM DUAL; --2

--6 LENGTH 回傳引數arg1的長度
SELECT LENGTH('abcdefg') FROM DUAL; --7

--7 lower 回傳引數arg1的小寫形式
SELECT LOWER('AbCdEfG') FROM DUAL; --abcdefg

--8 LPAD(arg1,n,arg3) 回傳在arg1左邊填充若干個arg3組成長度為n新字串
SELECT LPAD('ABC',10,'Ha') FROM DUAL; --HaHaHaHABC

--9 LTRIM(arg1,arg2)在arg1左面洗掉連續出現的arg2.不指定arg2則默認洗掉空格
SELECT LTRIM('AAAASA','A') FROM DUAL; --SA

--10 RPAD(arg1,n,arg3) 在字串arg1右邊連續重復填充arg3直到填充后的字串總長度到達n為止
SELECT RPAD('thr',5,'ee') FROM DUAL; --three

--11 RTRIM(arg1,arg2) 從arg1中洗掉右側連續出現的arg2.不指定arg2則默認洗掉空格.
SELECT RTRIM('abcdabcabc','abc') FROM DUAL; --abcd

--12 REGEXP_INSTR(源字串,正則運算式,[開始搜索的位置],[描述執行多少次替換],[描述匹配字串的位置的整數],[允許修改正則運算式引擎的默認行為的字串])
SELECT REGEXP_INSTR('ABC123ABC','[0-9]A') FROM DUAL; --6

--13 REGEXP_REPLACE(源字串,正則運算式,當正則運算式匹配時所使用的替換字串,[開始搜索的位置的整數],[描述執行多少次替換的資料],[允許修改正則運算式引擎的默認行為的字串])
SELECT REGEXP_REPLACE('abc123abc123','[0-9]','#') FROM DUAL; --abc###abc###

--14 EGEXP_SUBSTR(源字串,正則運算式,[開始搜索的位置],[描述執行多少次替換的資料],[允許修改正則運算式引擎的默認行為的字串])
SELECT REGEXP_substr('abc133abc456','([0-9]{3})abc([0-9]{3})') FROM DUAL; --133abc456

--15 REPLACE(arg1,search,replace) 該函式用replace引數替換出現的所有search引數
SELECT REPLACE('abcdabce','abc','x') FROM DUAL; --xdxe

--16 SUBSTR(arg1,pos,len) 
SELECT SUBSTR('1234567890',3,5) FROM DUAL; --34567

--17 TRANSLATE(arg1,match,replace)
SELECT TRANSLATE('PI*R*2','*R','#@') FROM DUAL;  --PI#@#2

--18 TRIM([LEADING][TRAILING][BOTH] char FROM source)
--截斷串首連續出現的字符1
SELECT TRIM(LEADING '1' FROM '1122332211') FROM DUAL;--22332211
SELECT TRIM(BOTH ' ' from ' ! ') as BOTH,TRIM(' ! ') as source FROM DUAL; --!  --!

4、數值函式

--數值函式

--1 ABS 絕對值 
SELECT  ABS(-2) FROM DUAL;  -- 2

--2 ROUND 四舍五入
SELECT ROUND(2.281,1) FROM DUAL; -- 2.3

--3 MOD 求余
SELECT MOD(10,3) FROM DUAL; --- 1

--4 POWER 平方 求導
SELECT POWER(2,3) AS 平方,POWER(2,-1) AS 求導 FROM DUAL;--8 --.5

--5 TRUNC 直接截取,不四舍五入
SELECT TRUNC(4.1231,2) FROM DUAL; --4.12

5、日期函式

--日期函式

--日期格式:
/*
YYYY:四位表示的年份 
YYY,YY,Y:年份的最后三位、兩位或一位,預設為當前世紀 
IYYY:ISO標準的四位年份
MM:01~12的月份編號 
MON:縮寫字符集表示 
MONTH:全拼字符集表示的月份,右邊用空格填補
Q:季度
W:當月第幾周
WW:當年第幾周 
IW:ISO標準的年中的第幾周
D:當周第幾天 
DD:當月第幾天 
DDD:當年第幾天 
DY:縮寫字符集表示
DAY:全拼字符集表示的天 如(星期六)
HH,HH12:一天中的第幾個小時,12進制表示法 
HH24:一天中的第幾個小時,取值為00~23 
MI:一小時中的分鐘 
SS:一分鐘中的秒 
SSSS:從午夜開始過去的秒數 
*/
SELECT TO_CHAR(SYSDATE, 'YYYY') 年,
       TO_CHAR(SYSDATE, 'MM') 月,
       TO_CHAR(SYSDATE, 'DD') 日,
       TO_CHAR(SYSDATE, 'HH24') 時,
       TO_CHAR(SYSDATE, 'MI') 分,
       TO_CHAR(SYSDATE, 'SS') 秒,
       TO_CHAR(SYSDATE, 'DAY') 天,
       TO_CHAR(SYSDATE, 'Q') 第幾季度,
       TO_CHAR(SYSDATE, 'W') 當月第幾周,
       TO_CHAR(SYSDATE, 'WW') 當年第幾周,
       TO_CHAR(SYSDATE, 'D') 當周第幾天,
       TO_CHAR(SYSDATE, 'DDD') 當年第幾天    
  FROM DUAL;
	
--注:日期可以加減數字,表示加減多少天;日期減去日期表示相隔多少天;日期不能相加
--注:MONTHS_BETWEEN的第一個日期要大于第二個日期,否則回傳負數,

  SELECT DATE'2021-04-25'+2,DATE'2021-04-25'-2,DATE'2021-02-25'-DATE'2021-04-25' FROM DUAL;--2021-4-27 --2021-4-23  --59
			
--1 ADD_MONTHS(日期,月數)(n可以為負值) 增減月份
  SELECT ADD_MONTHS(SYSDATE, 1),ADD_MONTHS(DATE'2021-04-25',-2) FROM DUAL;--2021-5-25 16:17:38 --2021-2-25
    
--2 LAST_DAY(日期),回傳指定日期當月的最后一天
  SELECT LAST_DAY(SYSDATE),LAST_DAY(DATE'2021-04-25') FROM DUAL;--2021-4-30 16:19:46 --2021-4-30

--3 MONTHS_BETWEEN (date1, date2),用于計算date1和date2之間有幾個月
  SELECT MONTHS_BETWEEN(TO_DATE('2021-4-25', 'yyyy-mm-dd'), TO_DATE('2021-1-1', 'yyyy-mm-dd')) MON_DIFF FROM DUAL;--3.77419354838709677419354838709677419355
  
--4 FLOOR:計算兩個日期間的天數
  SELECT FLOOR(TO_DATE('2021-05-03 20:00:00','yyyy-mm-dd hh24:mi:ss')-TO_DATE('2021-05-01 12:00:00','yyyy-mm-dd hh24:mi:ss')) A FROM DUAL;--2

--5 NEXT_DAY(d,string):(準確來說一個禮拜是從星期日開始到星期六結束的)
  SELECT NEXT_DAY(SYSDATE,'星期五') NEXT_DAY FROM DUAL; --2021-4-30 16:34:32

--6 EXTRACT(fmt FROM d):提取日期中的特定部分
SELECT SYSDATE ,
       EXTRACT(YEAR FROM SYSDATE) "YEAR",
       EXTRACT(MONTH FROM SYSDATE) "MONTH",
       EXTRACT(DAY FROM SYSDATE) "DAY",
       EXTRACT(HOUR FROM SYSTIMESTAMP) "HOUR",
       EXTRACT(MINUTE FROM SYSTIMESTAMP) "MINUTE",
       EXTRACT(SECOND FROM SYSTIMESTAMP) "SECOND"
  FROM DUAL;

--7 TO_TIMESTAMP(char[fmt[,'nls_param’]]):應注意char、fmt、nls_param之間的對應關系,
SELECT TO_TIMESTAMP('25-4月-21 07.46.41.000000000 上午','dd-MON-yy hh:mi:ss.ff AM') FROM DUAL;--25-4月 -21 07.46.41.000000000 上午
SELECT CAST(SYSDATE AS TIMESTAMP) DATE_TO_TIMESTAMP from dual;--25-4月 -21 04.36.04.000000 下午

6、判斷函式

6.1 NVL(expr1,expr2):若expr1引數為空則顯示expr2引數的值,反之則顯示expr1引數本來的值

--1 NVL(expr1,expr2):若expr1引數為空則顯示expr2引數的值,反之則顯示expr1引數本來的值
 SELECT NVL(NULL,0) FROM DUAL;     -- 0
 SELECT NVL(NULL,100) FROM DUAL;   -- 100
 SELECT NVL('', 99) FROM DUAL;   -- 99
 SELECT NVL(10, 100) FROM DUAL;   --10
 SELECT NVL('AB',25) FROM DUAL;     -- AB

6.2 NVL2(expr1,expr2, expr3):若expr1引數為空則顯示expr2的值,反之則顯示expr3引數的值

--2 NVL2(expr1,expr2, expr3):若expr1引數為空則顯示expr2的值,反之則顯示expr3引數的值
 SELECT NVL2(NULL, 0, 1) FROM DUAL;      -- 1
 SELECT NVL2('', 99, 2) FROM DUAL;       -- 2
 SELECT NVL2(10, 3, 100) FROM DUAL;      -- 3
 SELECT NVL2('AD', 'AB', 25) FROM DUAL;  -- AB

6.3 DECODE(value,if1,then1,if2,then2,if3,then3,...,else):若value與第一個值相等,則與第一個值的匹配值,以此類推,最后都沒有的,就回傳默認值

--3 DECODE(value,if1,then1,if2,then2,if3,then3,...,else):若value與第一個值相等,則與第一個值的匹配值,以此類推,最后都沒有的,就回傳默認值,
 SELECT DECODE(12, -- value
           1, 2, --if1,then1
          12, 10 --if2,then2
					) FROM DUAL;  -- 10				
 SELECT DECODE(12, 1, 2, 13, 10) FROM DUAL;-- 空			
 SELECT DECODE(12, 1, 2, 13, 10, 
           7 --默認值
					 ) FROM DUAL; --7				 
 SELECT DECODE(12, 1, 2, 12, 10, 12, 88,7) FROM DUAL; --10

6.4 CASE WHEN 多條件判斷

 --4 CASE WHEN 多條件判斷

7、分析函式

附表

--附表1:SCOTT表中的EMP表:員工表

SELECT * FROM EMP
--DROP TABLE EMP

-- CREATE TABLE
CREATE TABLE EMP
(
  EMPNO NUMBER(4),--員工編號,EMP表主鍵
	ENAME VARCHAR2(10), --員工姓名
	JOB VARCHAR2(9), --員工作業
	MGR NUMBER(4),  --員工的領導編號,參考EMPNO
	HIREDATE DATE , --入職日期 
	SAL NUMBER(7,2),  --員工工資 
	COMM NUMBER(7,2),  --員工獎金
	DEPTNO NUMBER(2)  --員工部門編號,是表DEPT的外鍵,
);
-- ADD COMMENTS TO THE TABLE 
COMMENT ON TABLE EMP
  IS '員工表';
-- ADD COMMENTS TO THE COLUMNS 
COMMENT ON COLUMN EMP.EMPNO
  IS '員工編號,EMP表主鍵';
COMMENT ON COLUMN EMP.ENAME
  IS '員工姓名';
COMMENT ON COLUMN EMP.JOB
  IS '員工作業';
COMMENT ON COLUMN EMP.MGR
  IS '員工的領導編號,參考EMPNO ';
COMMENT ON COLUMN EMP.HIREDATE
  IS '入職日期 ';
COMMENT ON COLUMN EMP.SAL
  IS '員工工資';
COMMENT ON COLUMN EMP.COMM
  IS '員工獎金';
COMMENT ON COLUMN EMP.DEPTNO
  IS '員工部門編號,是表DEPT的外鍵,';
	
--附表2:SCOTT表中的DEPT表:部門表

SELECT * FROM DEPT
--DROP TABLE DEPT

-- CREATE TABLE
CREATE TABLE DEPT
(
  DEPTNO NUMBER(2), --部門編號,主鍵
	DNAME VARCHAR2(14), --部門名稱
	LOC VARCHAR2(13) --部門位置
);
-- ADD COMMENTS TO THE TABLE 
COMMENT ON TABLE DEPT
  IS '部門表';
-- ADD COMMENTS TO THE COLUMNS 
COMMENT ON COLUMN DEPT.DEPTNO
  IS '部門編號,主鍵';
COMMENT ON COLUMN DEPT.DNAME
  IS '部門名稱';
COMMENT ON COLUMN DEPT.LOC
  IS '部門位置';
	
--附表3:SCOTT表中的SALGRADE表:工資等級表

SELECT * FROM SALGRADE

-- CREATE TABLE
CREATE TABLE SALGRADE
(
  GRADE NUMBER, --等級
	LOSAL NUMBER, --此等級下最低工資
	HISAL NUMBER --此等級下最高工資
);
-- ADD COMMENTS TO THE TABLE 
COMMENT ON TABLE SALGRADE
  IS '工資等級表';
-- ADD COMMENTS TO THE COLUMNS 
COMMENT ON COLUMN SALGRADE.GRADE
  IS '等級';
COMMENT ON COLUMN SALGRADE.LOSAL
  IS '此等級下最低工資';
COMMENT ON COLUMN SALGRADE.HISAL
  IS '此等級下最高工資';

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/280265.html

標籤:其他

上一篇:MySQL索引的底層實作原理

下一篇:補鞋匠都能看明了的sql高階陳述句(資料函式庫(聚合函式、字串函式、日期時間函式)、存盤程序)

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • GPU虛擬機創建時間深度優化

    **?桔妹導讀:**GPU虛擬機實體創建速度慢是公有云面臨的普遍問題,由于通常情況下創建虛擬機屬于低頻操作而未引起業界的重視,實際生產中還是存在對GPU實體創建時間有苛刻要求的業務場景。本文將介紹滴滴云在解決該問題時的思路、方法、并展示最終的優化成果。 從公有云服務商那里購買過虛擬主機的資深用戶,一 ......

    uj5u.com 2020-09-10 06:09:13 more
  • 可編程網卡芯片在滴滴云網路的應用實踐

    **?桔妹導讀:**隨著云規模不斷擴大以及業務層面對延遲、帶寬的要求越來越高,采用DPDK 加速網路報文處理的方式在橫向縱向擴展都出現了局限性。可編程芯片成為業界熱點。本文主要講述了可編程網卡芯片在滴滴云網路中的應用實踐,遇到的問題、帶來的收益以及開源社區貢獻。 #1. 資料中心面臨的問題 隨著滴滴 ......

    uj5u.com 2020-09-10 06:10:21 more
  • 滴滴資料通道服務演進之路

    **?桔妹導讀:**滴滴資料通道引擎承載著全公司的資料同步,為下游實時和離線場景提供了必不可少的源資料。隨著任務量的不斷增加,資料通道的整體架構也隨之發生改變。本文介紹了滴滴資料通道的發展歷程,遇到的問題以及今后的規劃。 #1. 背景 資料,對于任何一家互聯網公司來說都是非常重要的資產,公司的大資料 ......

    uj5u.com 2020-09-10 06:11:05 more
  • 滴滴AI Labs斬獲國際機器翻譯大賽中譯英方向世界第三

    **桔妹導讀:**深耕人工智能領域,致力于探索AI讓出行更美好的滴滴AI Labs再次斬獲國際大獎,這次獲獎的專案是什么呢?一起來看看詳細報道吧! 近日,由國際計算語言學協會ACL(The Association for Computational Linguistics)舉辦的世界最具影響力的機器 ......

    uj5u.com 2020-09-10 06:11:29 more
  • MPP (Massively Parallel Processing)大規模并行處理

    1、什么是mpp? MPP (Massively Parallel Processing),即大規模并行處理,在資料庫非共享集群中,每個節點都有獨立的磁盤存盤系統和記憶體系統,業務資料根據資料庫模型和應用特點劃分到各個節點上,每臺資料節點通過專用網路或者商業通用網路互相連接,彼此協同計算,作為整體提供 ......

    uj5u.com 2020-09-10 06:11:41 more
  • 滴滴資料倉庫指標體系建設實踐

    **桔妹導讀:**指標體系是什么?如何使用OSM模型和AARRR模型搭建指標體系?如何統一流程、規范化、工具化管理指標體系?本文會對建設的方法論結合滴滴資料指標體系建設實踐進行解答分析。 #1. 什么是指標體系 ##1.1 指標體系定義 指標體系是將零散單點的具有相互聯系的指標,系統化的組織起來,通 ......

    uj5u.com 2020-09-10 06:12:52 more
  • 單表千萬行資料庫 LIKE 搜索優化手記

    我們經常在資料庫中使用 LIKE 運算子來完成對資料的模糊搜索,LIKE 運算子用于在 WHERE 子句中搜索列中的指定模式。 如果需要查找客戶表中所有姓氏是“張”的資料,可以使用下面的 SQL 陳述句: SELECT * FROM Customer WHERE Name LIKE '張%' 如果需要 ......

    uj5u.com 2020-09-10 06:13:25 more
  • 滴滴Ceph分布式存盤系統優化之鎖優化

    **桔妹導讀:**Ceph是國際知名的開源分布式存盤系統,在工業界和學術界都有著重要的影響。Ceph的架構和演算法設計發表在國際系統領域頂級會議OSDI、SOSP、SC等上。Ceph社區得到Red Hat、SUSE、Intel等大公司的大力支持。Ceph是國際云計算領域應用最廣泛的開源分布式存盤系統, ......

    uj5u.com 2020-09-10 06:14:51 more
  • es~通過ElasticsearchTemplate進行聚合~嵌套聚合

    之前寫過《es~通過ElasticsearchTemplate進行聚合操作》的文章,這一次主要寫一個嵌套的聚合,例如先對sex集合,再對desc聚合,最后再對age求和,共三層嵌套。 Aggregations的部分特性類似于SQL語言中的group by,avg,sum等函式,Aggregation ......

    uj5u.com 2020-09-10 06:14:59 more
  • 爬蟲日志監控 -- Elastc Stack(ELK)部署

    傻瓜式部署,只需替換IP與用戶 導讀: 現ELK四大組件分別為:Elasticsearch(核心)、logstash(處理)、filebeat(采集)、kibana(可視化) 下載均在https://www.elastic.co/cn/downloads/下tar包,各組件版本最好一致,配合fdm會 ......

    uj5u.com 2020-09-10 06:15:05 more
最新发布
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:33:24 more
  • MySQL中binlog備份腳本分享

    關于MySQL的二進制日志(binlog),我們都知道二進制日志(binlog)非常重要,尤其當你需要point to point災難恢復的時侯,所以我們要對其進行備份。關于二進制日志(binlog)的備份,可以基于flush logs方式先切換binlog,然后拷貝&壓縮到到遠程服務器或本地服務器 ......

    uj5u.com 2023-04-20 08:28:06 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:27:27 more
  • 快取與資料庫雙寫一致性幾種策略分析

    本文將對幾種快取與資料庫保證資料一致性的使用方式進行分析。為保證高并發性能,以下分析場景不考慮執行的原子性及加鎖等強一致性要求的場景,僅追求最終一致性。 ......

    uj5u.com 2023-04-20 08:26:48 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:26:35 more
  • 云時代,MySQL到ClickHouse資料同步產品對比推薦

    ClickHouse 在執行分析查詢時的速度優勢很好的彌補了MySQL的不足,但是對于很多開發者和DBA來說,如何將MySQL穩定、高效、簡單的同步到 ClickHouse 卻很困難。本文對比了 NineData、MaterializeMySQL(ClickHouse自帶)、Bifrost 三款產品... ......

    uj5u.com 2023-04-20 08:26:29 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:25:13 more
  • Redis 報”OutOfDirectMemoryError“(堆外記憶體溢位)

    Redis 報錯“OutOfDirectMemoryError(堆外記憶體溢位) ”問題如下: 一、報錯資訊: 使用 Redis 的業務介面 ,產生 OutOfDirectMemoryError(堆外記憶體溢位),如圖: 格式化后的報錯資訊: { "timestamp": "2023-04-17 22: ......

    uj5u.com 2023-04-20 08:24:54 more
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:24:03 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:23:11 more