Hive 窗口函數與分析函數深度解析:開啟大數據分析的新維度

Hive 窗口函數與分析函數深度解析:開啟大數據分析的新維度

在當今大數據蓬勃發展的時代,Hive 作為一款強大的數據倉庫工具,其窗口函數和分析函數猶如一把把精巧的手術刀,助力數據分析師們精準地剖析海量數據,挖掘出深藏其中的價值寶藏。本文將帶領大家深入探索 Hive QL 中這些神奇函數的奧秘,從版本演進、功能特性到豐富多樣的實際應用示例,全方位地呈現它們在大數據處理領域的卓越魅力。

一、版本回溯與知識寶庫指引

Hive 窗口函數和分析函數的輝煌篇章始于 Hive 版本 0.11 的歷史性登場。這一里程碑式的升級為數據處理帶來了全新的范式轉變。若您渴望深入探究其技術細節與設計精髓,“Windowing Specifications in HQL”(緊密依附于 HIVE - 4197)猶如一座知識的金礦,蘊含著無盡的智慧結晶。與此同時,HIVE - 896 則像一位貼心的向導,不僅提供了豐富的示例資源,其初始評論區中的早期文檔鏈接更是為我們打開了一扇追溯歷史的窗口,讓我們得以見證這些函數從孕育到誕生的全過程,深刻理解其發展脈絡與設計初衷。

二、函數家族大揭秘:功能特性全解析

(一)窗口函數:數據洞察的多面手

  1. LEAD 函數:前瞻數據的導航儀
    LEAD 函數宛如一位目光長遠的數據探險家,它賦予我們窺視未來數據行的神奇能力。在實際業務場景中,想象一下我們正在分析電商平臺的用戶購買行為數據。以訂單時間為序,通過 LEAD 函數,我們能夠輕松查看用戶下一次購買商品的類別,從而精準預測用戶的消費趨勢,提前布局個性化推薦策略,為用戶提供貼心的購物體驗,同時也為商家挖掘潛在的銷售增長點。當我們未明確指定領先行數時,它默認僅向前眺望一行,恰似在時間長河中邁出一小步,卻能為我們帶回珍貴的未來信息。然而,當它的探索之旅超出了窗口的邊界,如同勇敢的航海家駛入未知的深海,便會返回 null 值,提醒我們數據的盡頭已近。
  2. LAG 函數:回溯數據的時光機
    與 LEAD 函數遙相呼應,LAG 函數則是一臺能夠帶我們穿越回過去的時光機。在金融領域的數據分析中,比如分析股票價格走勢時,借助 LAG 函數,我們可以獲取前一交易日的股價信息,通過對比相鄰交易日的股價波動,計算漲跌幅、移動平均線等關鍵指標,進而洞察股價變化的趨勢與規律,為投資者提供科學的決策依據。若未指定滯后行數,它也會貼心地為我們帶回前一行的數據,讓我們在數據的時光隧道中穩步回溯。一旦超出窗口的起始范圍,同樣會以 null 值警示我們已抵達數據的源頭。
  3. FIRST_VALUE 函數:分組數據的先鋒旗手
    FIRST_VALUE 函數猶如在分組數據海洋中豎起的一面先鋒旗幟,標識出每組數據的起始特征。在日志數據分析中,假設我們按照用戶會話 ID 對日志進行分組,想要獲取每個會話的首次訪問頁面,FIRST_VALUE 函數便能精準地完成這一使命。通過設置第二個可選參數為 true,它還能巧妙地跳過 null 值,確保我們獲取到的首個有效數據點,為后續的數據分析奠定堅實的基礎,如同在茫茫數據海洋中找到了可靠的燈塔。
  4. LAST_VALUE 函數:分組數據的收官之筆
    LAST_VALUE 函數則是為分組數據畫上完美句號的藝術家。在銷售數據分析中,若按照銷售區域對銷售訂單進行分組,我們可以利用 LAST_VALUE 函數獲取每個區域最后一筆訂單的金額、時間等關鍵信息,從而分析不同區域銷售活動的收尾情況,評估銷售策略在不同區域的長期效果,為下一輪銷售計劃的制定提供有力的參考依據,如同在一場盛大的商業演出中,捕捉到最后一個精彩的落幕瞬間。

(二)OVER 子句:數據聚合的魔法舞臺

  1. 標準聚合函數與 OVER 子句的夢幻聯動
    COUNTSUMMINMAXAVG 這些耳熟能詳的標準聚合函數,在與 OVER 子句攜手之后,仿佛被賦予了全新的生命力,搖身一變成為數據聚合的魔法大師。以電商訂單數據為例,我們可以使用 SUM 函數結合 OVER 子句,按照用戶 ID 進行分區,輕松計算出每個用戶的歷史訂單總金額,為用戶價值評估提供直觀的量化指標;或者運用 AVG 函數,在按照產品類別分區的基礎上,計算出各類產品的平均銷售價格,幫助商家精準把握市場價格定位,制定合理的價格策略。
  2. PARTITION BY 與 ORDER BY:構建有序的數據分區世界
    PARTITION BY 語句如同一位嚴謹的建筑師,精心構建起數據的分區大廈,而 ORDER BY 則是大廈內的導航系統,為數據賦予了明確的順序。在社交媒體數據分析中,我們可以依據用戶的注冊時間進行分區,并按照用戶的活躍度(如發布內容數量、點贊評論數量等)進行排序,這樣一來,在每個分區內,數據都按照活躍度有序排列。借助 OVER 子句,我們能夠在這個有序的分區世界中,針對不同活躍度層次的用戶群體進行深入分析,例如計算每個分區內活躍度前 10% 的用戶的平均互動率,為精準營銷和用戶運營提供極具價值的洞察。
  3. 窗口規范:定制化的數據視野窗口
    窗口規范則像是為我們的數據視野量身定制的一扇扇窗戶,通過不同的格式設置,我們可以靈活地調整看到的數據范圍。例如,在物流配送數據分析中,對于訂單配送時間數據,我們可以設定 (ROWS | RANGE) BETWEEN 3 PRECEDING AND CURRENT ROW 的窗口規范,這樣就能聚焦于當前訂單及其前三個訂單的配送時間信息,計算平均配送時長的滾動變化趨勢,及時發現配送效率的波動情況并采取相應的優化措施。當指定了 ORDER BY 但缺少 WINDOW 子句時,默認的 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW 窗口規范就像開啟了一扇全景天窗,讓我們能夠縱覽從數據起始點到當前行的所有數據信息;而若 ORDER BYWINDOW 子句都缺失,ROW BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING 則為我們呈現出一幅無邊界的數據畫卷,涵蓋了整個數據集的全貌。

需要特別注意的是,OVER 子句在支持一些函數時存在著特定的限制與微妙之處。排名函數(RankNTileDenseRankCumeDistPercentRank)以及 LeadLag 函數本身在與窗口搭配使用時,就像在復雜的舞蹈中遵循著特定的舞步規則,需要我們深入理解并謹慎運用,以免在數據處理的舞臺上出現意外的失誤(參考 HIVE - 4797)。

(三)分析函數:數據排名與分布的智慧導師

RANKROW_NUMBERDENSE_RANKCUME_DISTPERCENT_RANKNTILE 這些分析函數宛如一群智慧的導師,從不同的角度為我們解讀數據的排名與分布奧秘。在學生成績數據分析中,RANK 函數能夠清晰地為每個學生在班級中的成績排名定位,讓我們一目了然地看出學生的相對位置;DENSE_RANK 函數則在排名時避免了名次的跳躍,為成績相近的學生提供更合理的排名呈現,有助于更細致地評估學生的學業水平層次;CUME_DIST 函數可以計算出每個學生成績在班級中的累積分布比例,幫助教師了解成績的整體分布情況,判斷教學效果是否呈現正態分布;PERCENT_RANK 函數進一步將排名轉換為百分比形式,為跨班級、跨年級的成績比較提供了統一的標準尺度;NTILE 函數則像一位公平的分配者,將數據按照指定的份數進行分桶,例如將學生按照成績均勻地劃分到高、中、低三個能力組,為分層教學和個性化輔導提供了有力的支持。

(四)Distinct 支持:數據去重的精準利器

在 Hive 2.1.0 及之后版本(參考 HIVE - 9534),聚合函數中的 DISTINCT 操作如同一把精準的手術刀,在數據的海洋中精準地剔除重復元素。以電商用戶行為分析為例,我們可能想要統計每個用戶在一段時間內訪問過的不同商品類別數量。通過 COUNT(DISTINCT a) OVER (PARTITION BY c) 語句,我們可以按照用戶 ID(列 c)進行分區,然后對每個用戶訪問的商品類別(列 a)進行去重計數,從而清晰地了解每個用戶的興趣廣度和多樣性。在早期實現中,出于對性能這一數據處理高速公路通行效率的考量,分區子句里暫時無法容納 ORDER BY 或窗口規范這位“旅伴”。然而,隨著 Hive 技術的不斷演進,到了 Hive 2.2.0 版本(參考 HIVE - 13453),ORDER BY 和窗口規范終于可以與 DISTINCT 操作攜手同行,為我們提供更強大、更靈活的去重計數功能,例如 COUNT(DISTINCT a) OVER (PARTITION BY c ORDER BY d ROWS BETWEEN 1 PRECEDING AND 1 FOLLOWING),讓我們能夠在一個動態變化的窗口范圍內對去重數據進行精細的統計分析,滿足日益復雜的業務需求。

此外,自 Hive 2.1.0 及后續版本(參考 HIVE - 13475),OVER 子句內引用聚合函數的功能如同一座新搭建的橋梁,連接起了更多數據處理的可能性。例如,在企業銷售數據分析中,我們可以通過 SELECT rank() OVER (ORDER BY sum(b)) FROM T GROUP BY a; 語句,先按照產品類別(列 a)進行分組,然后在每個分組內計算銷售金額(列 b)的總和,并基于這些總和進行排名。這一功能為我們在多維度數據綜合分析的復雜迷宮中開辟了一條新的通道,讓我們能夠更深入地挖掘數據之間的內在聯系和潛在規律。

三、實戰演練:示例代碼全解析

(一)PARTITION BY 實戰場景

  1. 單分區列無 ORDER BY 和窗口規范:基礎分區統計
SELECT a, COUNT(b) OVER (PARTITION BY c)
FROM T;

在這個簡潔而強大的示例中,我們以列 c 為分區依據,對表 T 中的數據進行劃分。就如同將一個龐大的數據集按照某種特定的屬性(例如地區、部門等)切割成多個相對獨立的子集,然后在每個子集中統計列 b 的數量。在實際業務中,假設 T 是一張員工信息表,c 表示部門,b 表示員工的項目經驗數量,那么這個查詢就能快速告訴我們每個部門內員工項目經驗數量的總和,為部門之間的人才資源對比提供了直觀的數據支持。
2. 雙分區列無 ORDER BY 和窗口規范:多維度分區細化

SELECT a, COUNT(b) OVER (PARTITION BY c, d)
FROM T;

此示例進一步拓展了分區的維度,通過列 cd 兩個維度對數據進行更為精細的劃分。例如,在電商訂單數據中,如果 c 表示訂單的發貨城市,d 表示訂單的收貨城市,那么這個查詢就可以統計出從每個發貨城市到每個收貨城市的訂單數量,幫助電商企業深入了解物流配送的地域流向和需求分布,優化物流網絡布局和資源分配。
3. 單分區列單 ORDER BY 無窗口規范:有序分區聚合起步

SELECT a, SUM(b) OVER (PARTITION BY c ORDER BY d)
FROM T;

這里在分區的基礎上引入了排序機制,按照列 c 分區后,再依據列 d 的順序對數據進行組織。以在線教育課程學習數據為例,如果 c 表示課程類別,d 表示學生的學習時間順序,那么這個查詢可以計算出每個課程類別下,按照學習時間順序累計的學習時長總和,有助于課程開發者分析不同課程的學習進度和學生參與度變化趨勢,為課程優化和教學策略調整提供依據。
4. 雙分區列雙 ORDER BY 無窗口規范:復雜有序分區聚合

SELECT a, SUM(b) OVER (PARTITION BY c, d ORDER BY e, f)
FROM T;

此查詢在多維度分區的基礎上,結合了多列排序,構建了一個更為復雜而精細的數據處理場景。在金融交易數據分析中,如果 c 表示交易的市場板塊,d 表示交易的賬戶類型,e 表示交易時間,f 表示交易金額大小順序,那么這個查詢能夠計算出在每個市場板塊和賬戶類型的組合下,按照交易時間和金額順序累計的交易總量,為金融機構深入分析不同市場和客戶群體的交易行為模式提供了強大的工具。
5. 帶分區、ORDER BY 和窗口規范:靈活窗口分區聚合

SELECT a, SUM(b) OVER (PARTITION BY c ORDER BY d ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)
FROM T;
SELECT a, AVG(b) OVER (PARTITION BY c ORDER BY d ROWS BETWEEN 3 PRECEDING AND CURRENT ROW)
FROM T;
SELECT a, AVG(b) OVER (PARTITION BY c ORDER BY d ROWS BETWEEN 3 PRECEDING AND 3 FOLLOWING)
FROM T;
SELECT a, AVG(b) OVER (PARTITION BY c ORDER BY d ROWS BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING)
FROM T;

這些示例展示了如何通過靈活調整窗口規范,在分區和排序的基礎上實現多樣化的聚合計算。以社交媒體用戶互動數據為例,如果 c 表示用戶所在的社交群組,d 表示用戶的注冊時間順序,第一個查詢可以計算出每個社交群組內,從最早注冊的用戶到當前用戶的互動總量(如點贊、評論數量總和);第二個查詢能夠計算出當前用戶及其前三個注冊用戶的平均互動頻率;第三個查詢則聚焦于當前用戶及其前后三個注冊用戶的互動頻率平均值,用于分析局部用戶群體的互動活躍度;第四個查詢可以獲取從當前用戶到最新注冊用戶的平均互動情況,為評估社交群組的互動發展趨勢提供了多維度的視角。
6. 單查詢多 OVER 子句:多元聚合并行出擊

SELECT a,COUNT(b) OVER (PARTITION BY c),SUM(b) OVER (PARTITION BY c)
FROM T;

在這個查詢中,我們同時運用了兩個 OVER 子句,分別進行計數和求和操作。這就好比在一次數據探索之旅中,派遣了兩支不同任務的探險隊,一支負責統計每個分區內的元素數量,另一支負責計算分區內數據的總和。例如在企業庫存管理數據分析中,如果 c 表示倉庫地點,a 表示庫存商品類別,b 表示庫存商品數量,這個查詢可以一次性獲取每個倉庫地點的商品類別數量以及庫存總量,為庫存調配和管理決策提供全面的數據支持。
7. 別名使用:數據結果清晰標識

SELECT a,COUNT(b) OVER (PARTITION BY c) AS b_count,SUM(b) OVER (PARTITION BY c) b_sum
FROM T;

通過使用別名,我們為基于窗口計算的結果列賦予了清晰易懂的名稱。這就像在復雜的數據迷宮中為每個出口都貼上了明確的標識牌,方便我們在后續的數據處理和分析中快速定位和理解這些結果。無論是在生成報表還是在與其他數據處理步驟進行對接時,別名都能極大地提高數據的可讀性和可操作性。

(二)WINDOW 子句實戰應用

SELECT a, SUM(b) OVER w
FROM T
WINDOW w AS (PARTITION BY c ORDER BY d ROWS UNBOUNDED PRECEDING);

在這個示例中,WINDOW 子句將窗口規范單獨定義,然后在 OVER 子句中引用。這就像是將數據處理的規則和流程進行了模塊化封裝,提高了代碼的可維護性和復用性。在大型數據處理項目中,如果多個查詢都需要使用相同的窗口規范,通過這種方式,我們只需定義一次 WINDOW 子句,然后在各個查詢中直接引用即可,避免了重復編寫相同的窗口定義代碼,減少了出錯的可能性,同時也使得代碼結構更加清晰簡潔,易于理解和優化。

(三)LEAD 和 LAG 函數實戰演練

  1. LEAD 默認用法:未來數據初探
SELECT a, LEAD(a) OVER (PARTITION BY b ORDER BY C)
FROM T;

以電信用戶通話記錄數據為例,如果 b 表示用戶電話號碼,C 表示通話時間順序,a 表示通話時長,這個查詢可以查看每個用戶下一次通話的時長情況。通過分析這些數據,電信運營商可以洞察用戶的通話行為模式,例如是否存在長時間通話后短時間內再次通話的規律,為套餐設計和網絡資源優化提供參考依據。
2. LAG 指定滯后:回溯歷史數據洞察

SELECT a, LAG(a, 3, 0) OVER (PARTITION BY b ORDER BY C)
FROM T;

同樣在電信用戶通話記錄數據中,這個查詢可以獲取每個用戶前三次通話的時長信息(若不足三次則以 0 填充)。通過對比當前通話時長與前三次通話時長,能夠分析用戶通話時長的變化趨勢,比如是否存在通話時長逐漸增加或減少的情況,進而為精準營銷提供支持。例如,對于通話時長持續增加的用戶,可以推薦更適合長時間通話的套餐;對于通話時長明顯減少的用戶,可以推送一些優惠活動以刺激其通話需求。

(四)分區內去重計數實戰示例

SELECT a, COUNT(distinct a) OVER (PARTITION BY b)
FROM T;

假設 T 是一張用戶訪問網站頁面的日志表,b 表示用戶 ID,a 表示用戶訪問的頁面 URL。此查詢能夠統計出每個用戶訪問過的不同頁面數量,從而了解用戶的興趣廣度和多樣性。對于互聯網公司來說,可以根據用戶的興趣多樣性來進行個性化推薦。例如,對于訪問頁面種類豐富的用戶,可以推薦更多元化的內容,包括新聞、娛樂、科技等不同領域的信息;而對于訪問頁面較為單一的用戶,則可以集中推薦其感興趣領域的深度內容或相關產品,提高用戶的參與度和轉化率。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/62228.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/62228.shtml
英文地址,請注明出處:http://en.pswp.cn/web/62228.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

SCAU期末筆記 - 數據庫系統概念

我校使用Database System Concepts,9-12章不考所以跳過,因為課都逃了所以復習很倉促,只準備過一下每一章最后的概念辨析,我也不知道有沒有用 第1章 引言 數據庫管理系統(DBMS) 由一個互相關聯的數據的集合…

Android 12系統源碼_窗口管理(九)深淺主題切換流程源碼分析

前言 上一篇我們簡單介紹了應用的窗口屬性WindowConfiguration這個類,該類存儲了當前窗口的顯示區域、屏幕的旋轉方向、窗口模式等參數,當設備屏幕發生旋轉的時候就是通過該類將具體的旋轉數據傳遞給應用的、而應用在加載資源文件的時候也會結合該類的A…

河南省的教育部科技查新工作站有哪些?

鄭州大學圖書館(Z12):2007年1月被批準設立“教育部綜合類科技查新工作站”,同年12月被河南省科技廳認定為河南省省級科技查新機構。主要面向河南省的高校、科研機構、企業提供科技查新、查收查引等服務。 河南大學圖書館&#xf…

Leetcode經典題6--買賣股票的最佳時機

買賣股票的最佳時機 題目描述: 給定一個數組 prices ,它的第 i 個元素 prices[i] 表示一支給定股票第 i 天的價格。 你只能選擇 某一天 買入這只股票,并選擇在 未來的某一個不同的日子 賣出該股票。設計一個算法來計算你所能獲取的最大利潤。…

MCPTT 與BTC

MCPTT(Mission Critical Push-to-Talk)和B-TrunC(寬帶集群)是兩種關鍵通信標準,它們分別由不同的組織制定和推廣。 MCPTT(Mission Critical Push-to-Talk)標準由3GPP(第三代合作伙伴…

去除賬號密碼自動賦值時的輸入框背景色

問題描述: 前端使用賬號密碼登錄,若在網頁保存過當前頁面的密碼和賬號,那么當再次進入該頁面,網頁會自動的把賬號和密碼賦到輸入框中,而此時輸入框是帶有背景色的,與周邊的白色背景顯得很不協調&#xff1…

【Pytorch】torch.reshape與torch.Tensor.reshape區別

問題引入: 在Pytorch文檔中,有torch.reshape與torch.Tensor.reshape兩個reshape操作,他們的區別是什么呢? 我們先來看一下官方文檔的定義: torch.reshape: torch.Tensor.reshape: 解釋: 在p…

掃碼與短信驗證碼登錄JS逆向分析與Python純算法還原

文章目錄 1. 寫在前面2. 掃碼接口分析2. 短信接口分析3. 加密算法還原【??作者主頁】:吳秋霖 【??作者介紹】:擅長爬蟲與JS加密逆向分析!Python領域優質創作者、CSDN博客專家、阿里云博客專家、華為云享專家。一路走來長期堅守并致力于Python與爬蟲領域研究與開發工作!…

spring6:3容器:IoC

spring6:3容器:IoC 目錄 spring6:3容器:IoC3、容器:IoC3.1、IoC容器3.1.1、控制反轉(IoC)3.1.2、依賴注入3.1.3、IoC容器在Spring的實現 3.2、基于XML管理Bean3.2.1、搭建子模塊spring6-ioc-xml…

【認證法規】安全隔離變壓器

文章目錄 定義反激電源變壓器 定義 安全隔離變壓器(safety isolating transformer),通過至少相當于雙重絕緣或加強絕緣的絕緣使輸入繞組與輸出繞組在電氣上分開的變壓器。這種變壓器是為以安全特低電壓向配電電路、電器或其它設備供電而設計…

車機端同步outlook日歷

最近在開發一個車機上的日歷助手,其中一個需求就是要實現手機端日歷和車機端日歷數據的同步。然而這種需求似乎沒辦法實現,畢竟手機日歷是手機廠商自己帶的系統應用,根本不能和車機端實現數據同步的。 那么只能去其他公共的平臺尋求一些機會&…

OpenCV-圖像閾值

簡單閾值法 此方法是直截了當的。如果像素值大于閾值,則會被賦為一個值(可能為白色),否則會賦為另一個值(可能為黑色)。使用的函數是 cv.threshold。第一個參數是源圖像,它應該是灰度圖像。第二…

力扣300.最長遞增子序列

題目描述 題目鏈接300. 最長遞增子序列 給你一個整數數組 nums ,找到其中最長嚴格遞增子序列的長度。 子序列 是由數組派生而來的序列,刪除(或不刪除)數組中的元素而不改變其余元素的順序。例如,[3,6,2,7] 是數組 […

Vue CLI的作用

Vue CLI(Command Line Interface)是一個基于Vue.js的官方腳手架工具,其主要作用是幫助開發者快速搭建Vue項目的基礎結構和開發環境。以下是Vue CLI的具體作用: 1、項目模板與快速生成 Vue CLI提供了一系列預設的項目模板&#x…

【藍橋杯每日一題】掃雷

掃雷 知識點 2024-12-3 藍橋杯每日一題 掃雷 dfs (bfs也是可行的) 題目大意 在一個二維平面上放置這N個炸雷,每個炸雷的信息有$(x_i,y_i,r_i) $,前兩個是坐標信息,第三個是爆炸半徑。然后會輸入M個排雷火箭&#xff0…

【大數據學習 | 面經】Spark 3.x 中的AQE(自適應查詢執行)

Spark 3.x 中的自適應查詢執行(Adaptive Query Execution,簡稱 AQE)通過多種方式提升性能,主要包括以下幾個方面: 動態合并 Shuffle 分區(Coalescing Post Shuffle Partitions): 當 …

城電科技 | 光伏景觀長廊 打造美麗鄉村綠色低碳示范區 光伏景觀設計方案

光伏景觀長廊是一種結合了光伏發電技術和零碳景觀設計的新型公共公共設施,光伏景觀長廊頂上的光伏板不僅可以為周邊用電設備提供清潔電能,而且還能作為遮陽設施使用,為人們提供一個美麗又實用的休閑娛樂空間。 光伏景觀長廊建設對打造美麗鄉…

開發系統準備與開發環境配置總結

開發前系統配置及環境搭建 系統配置0 Github打不開、速度慢怎么辦1 WSL、Linux、Ubuntu、Docker都是什么鬼2 在Windows下安裝WSL和Ubuntu3 配置MySQL4 配置Redis并啟動服務5 Docker(Windows和Ubuntu下)6 Nginx 系統配置 你好! 這是你第一次使…

uniapp 添加loading

在uniapp中添加loading可以使用uni的API uni.showLoading 方法。以下是一個簡單的示例代碼 // 顯示loading uni.showLoading({title: 加載中 });// 假設這里是異步操作,比如網絡請求 setTimeout(function () {// 隱藏loadinguni.hideLoading(); }, 2000);

C++(九)

前言: 本文主要講述運算符的優先順序。 一,運算符的優先級。 請看以下表達式: a32*5 運算結果為:13. 可以看到,在此代碼中,先運行了2*5的結果,在此基礎上在進行3操作,因此結果…