SQL85 統計每個產品的銷售情況

SQL85 統計每個產品的銷售情況

好復雜,俺不中了。。

問題描述

本查詢旨在分析2023年各產品的銷售情況,包括:

  1. 每個產品的總銷售額、單價、總銷量和月均銷售額
  2. 每個產品銷量最高的月份及其銷量
  3. 每個產品購買量最高的客戶年齡段

解題思路

1. 基礎數據準備 (base_data)

首先從訂單、客戶和產品表中提取2023年的銷售數據,并計算:

  • 訂單月份 (month(order_date))
  • 訂單總金額 (quantity * unit_price)
  • 客戶年齡段分組 (customer_age_group)
WITH base_data AS (SELECTproducts.product_id,MONTH(order_date) AS month,unit_price,quantity,quantity * unit_price AS total_amount,customer_age,CASEWHEN customer_age BETWEEN 1 AND 10 THEN '1-10'WHEN customer_age BETWEEN 11 AND 20 THEN '11-20'WHEN customer_age BETWEEN 21 AND 30 THEN '21-30'WHEN customer_age BETWEEN 31 AND 40 THEN '31-40'WHEN customer_age BETWEEN 41 AND 50 THEN '41-50'WHEN customer_age BETWEEN 51 AND 60 THEN '51-60'ELSE '61+'END AS customer_age_groupFROMordersJOIN customers USING (customer_id)JOIN products USING (product_id)WHEREYEAR(order_date) = 2023
)

2. 計算產品月最高銷量 (max_monthly_quantity_data)

找出每個產品在所有月份中的最高銷量:

  • 按產品和月份分組計算總銷量
  • 使用窗口函數 max(sum(quantity)) 找出每個產品的月最高銷量
max_monthly_quantity_data AS (SELECT DISTINCTproduct_id,max_monthly_quantityFROM(SELECTproduct_id,MAX(SUM(quantity)) OVER (PARTITION BY product_id) AS max_monthly_quantityFROMbase_dataGROUP BYproduct_id,monthORDER BYproduct_id ASC,month ASC) t1
)

3. 識別主要客戶群體 (grouped_data)

找出每個產品購買量最高的客戶年齡段:

  • 按產品和客戶年齡段分組計算總銷量
  • 使用 ROW_NUMBER() 按銷量降序排序(銷量相同時按年齡段升序)
  • 篩選排名第一的記錄
grouped_data AS (SELECTproduct_id,customer_age_groupFROM(SELECTproduct_id,customer_age_group,total_quantity,ROW_NUMBER() OVER (PARTITION BY product_idORDER BY total_quantity DESC, customer_age_group ASC) AS sales_rankFROM(SELECTproduct_id,customer_age_group,SUM(quantity) AS total_quantityFROMbase_dataGROUP BYproduct_id,customer_age_group) t2ORDER BYproduct_id,sales_rank) t3WHEREsales_rank = 1
)

4. 計算基本銷售統計 (basic_stat)

計算每個產品的核心銷售指標:

  • 總銷售額 (sum(total_amount))
  • 單價 (unit_price)
  • 總銷量 (sum(quantity))
  • 月均銷售額 (sum(total_amount)/12)
basic_stat AS (SELECTproduct_id,ROUND(SUM(total_amount), 2) AS total_sales,ROUND(unit_price, 2) AS unit_price,SUM(quantity) AS total_quantity,ROUND(SUM(total_amount) / 12, 2) AS avg_monthly_salesFROMbase_dataGROUP BYproduct_id,unit_price
)

5. 合并最終結果

將三個中間結果合并,并按總銷售額降序、產品ID升序、客戶年齡段升序排序:

SELECT*
FROMbasic_statJOIN max_monthly_quantity_data USING (product_id)JOIN grouped_data USING (product_id)
ORDER BYtotal_sales DESC,product_id ASC,customer_age_group ASC

技術亮點

  1. 多維度分析:同時考慮了時間維度(月份)和客戶維度(年齡段)
  2. 窗口函數應用:使用 MAX() OVER()ROW_NUMBER() 高效計算極值和排名
  3. 數據完整性:確保所有計算都基于2023年的銷售數據
  4. 精確分組:正確處理了產品和月份、產品和客戶年齡段的交叉分組

結果解讀

最終結果將展示:

  • 按總銷售額排序的所有產品
  • 每個產品的核心銷售指標
  • 該產品銷量最高的月份對應的銷量
  • 該產品最主要的客戶年齡段

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

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

相關文章

Django MAC Pycharm 命令行建立項目,注冊app運行失敗,找不到views導入包

相對復雜的情況 你沒有直接在Pycharm中建立一個Django項目,而是直接建立某個項目或者打開某個項目,使用命令后安裝Django后,使用命令后建立了Django項目,盡管你的目錄盡可能干凈,只有Django項目,但是這仍然…

窄帶和寬帶誰略誰優

窄帶(Narrowband)與寬帶(Broadband)深度對比 ——涵蓋 優缺點、適用場景、調制方式 1. 窄帶(Narrowband) 1.1 核心特點 帶寬:≤25 kHz(典型值,如NB-IoT僅占用180kHz&a…

李佳琦直播間618收官:6成銷量為國貨,多品類增超25%

618大促迎來收官,作為電商消費的關鍵風向標,李佳琦直播間生動呈現了當下消費市場的多元趨勢。 據「TMT星球」了解,在長達近40天的大促里,李佳琦直播間不僅延續過往的高人氣與強帶貨力,更在高質價比產品、高質量服務保…

c++ noexcept關鍵字

noexcept 是 C11 中引入的一個關鍵字,用來標記函數聲明,表示該函數不會拋出異常。它可以用于函數、函數指針、Lambda 表達式等。使用 noexcept 可以幫助編譯器進行優化,提高代碼的執行效率,并且讓程序在處理異常時更加明確。 1. …

騰訊混元3D制作簡單模型教程-2

以下是騰訊混元3D制作簡單模型的詳細教程,整合最新版本特性(截至2025年6月),操作門檻低且無需專業基礎: 🖥 一、在線生成(最快30秒完成) ?訪問平臺? 打開 騰訊混元3D創作引擎官網…

阿里云申請ssl證書,同時需要綁定域名,下載nginx壓縮包,nginx添加證書路徑即可

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 文章目錄 一、ssl是什么?二、登錄阿里云三、圖片教程四、添加域名前綴(www)如:www.baidu.com總結 一、ssl是什么? …

額度互動促進金融健康,螞蟻消金創新智能實時交互式風控系統

“螞蟻消金希望利用交互式智能風控技術,挖掘年輕人努力成長的證明”。6月19日,在上海舉行的2025中國國際金融展上,螞蟻消金首席風險官林嘉南分享了,如何將大模型技術應用在交互式智能風控領域,從而促進額度的互動性&am…

SAP-ABAP:LOOP ... ASSIGNING高效處理內表數據詳解

在ABAP中&#xff0c;LOOP ... ASSIGNING 是高效處理內表數據的關鍵技術&#xff0c;它通過字段符號(field symbol) 直接訪問內表內存地址&#xff0c;避免數據副本創建。以下是詳細用法指南&#xff1a; 一、基礎語法結構 FIELD-SYMBOLS: <fs_line> TYPE any. " …

Tomcat本地部署Maven Java Web項目

接下來是在widows部署maven javaweb 首先要配置tomcat&#xff0c;我這里是聯合項目&#xff0c;需要配置多個tomcat 選擇每個對應的war包 這里的項目名和端口號要改&#xff0c;否則多個項目啟動會因為端口號占用無法啟動 Tomcat運行項目 打包 在右邊的Maven視圖里面找到…

golang--具名返回值、匿名返回值與 defer 語句之間的關系,以及 panic 對它們的影響

好的&#xff0c;我們來詳細探討 Go 語言中具名返回值、匿名返回值與 defer 語句之間的關系&#xff0c;以及 panic 對它們的影響。這是 Go 錯誤處理和資源管理中的核心機制。 核心概念 具名返回值 (Named Return Values): 在函數簽名中聲明返回變量名。例如&#xff1a;fun…

FFmpeg 超級詳細安裝與配置教程(Windows 系統)

1. 前言 FFmpeg 是一個用于處理視頻、音頻等多媒體文件的開源工具包。它支持幾乎所有的多媒體格式轉換、剪輯和編輯&#xff0c;是開發者和多媒體工作者必備的工具。本文詳細講解如何在 Windows 系統上安裝 FFmpeg 并進行基本配置。 2. 下載 FFmpeg 安裝包 打開 Download FFmp…

Pytorch中gather()函數詳解和實戰示例

在 PyTorch 中&#xff0c;torch.gather() 是一個非常實用的張量操作函數&#xff0c;主要用于根據索引從輸入張量中選擇特定位置的值。它常用于注意力機制、序列處理等場景。 函數定義 torch.gather(input, dim, index) → Tensorinput&#xff1a;待提取數據的張量。dim&…

uniapp 微信小程序在線引入字體圖標

在線引入字體圖標&#xff0c;出現體驗版&#xff0c;真機調試字體圖標不出來&#xff0c;模擬器上是好的 由于字體圖標和小程序域名不在同一個&#xff0c;所以出現了跨域問題&#xff0c;將字體圖標文件放到小程序同一個域名下就好了

macOS版的節點小寶上架蘋果APP Store了

前言 前段時間很多小伙伴按照小白的教程在飛牛NAS部署了節點小寶之后&#xff0c;Windows的小伙伴玩得不亦樂乎&#xff01; 反觀macOS用戶……因為沒有#macOS版本的節點小寶&#xff0c;就算是在飛牛NAS上部署了節點小寶&#xff0c;卻一點也開心不起來。 畢竟iOS版本的節點…

tensor向量按任意維度進行切片、拆分、組合

torch.index_select(input_tensor, 切片維度, 切片索引) 注意&#xff1a;切完之后&#xff0c;轉onnx時會生成Gather節點&#xff1b; torch自帶切片操作&#xff1a; start : end : step&#xff1a; 范圍前閉后開&#xff0c;將其放在哪個維度上&#xff0c;就對那個維度…

(八)Linux進程程序替換

1 進程替換 進程替換是為了讓程序能在不創建新進程的情況下&#xff0c;讓父進程和子進程執行不同的代碼&#xff0c;以實現控制清晰、執行高效的程序調度機制。 1.1 先看效果 #include <stdio.h> #include <unistd.h> int main() {printf("before:I am a p…

支持 TDengine 的數據庫管理工具—qStudio

qStudio qStudio 是一款免費的多平臺 SQL 數據分析工具&#xff0c;可以輕松瀏覽數據庫中的表、變量、函數和配置設置。最新版本 qStudio 內嵌支持 TDengine。 前置條件? 使用 qStudio 連接 TDengine 需要以下幾方面的準備工作。 安裝 qStudio。qStudio 支持主流操作系統包…

破解 VMP+OLLVM 混淆:通過 Hook jstring 快速定位加密算法入口

版權歸作者所有&#xff0c;如有轉發&#xff0c;請注明文章出處&#xff1a;https://cyrus-studio.github.io/blog/ VMP 殼 OLLVM 的加密算法 某電商APP的加密算法經過dex脫殼分析&#xff0c;找到參數加密的方法在 DuHelper.doWork 中 package com.shizhuang.duapp.common…

Automatisch:開源的工作流自動化利器

在當今數字化的時代,企業和個人都在尋找高效的方式來自動化業務流程,減少手動操作帶來的時間和成本消耗。Automatisch 作為一款開源的 Zapier 替代方案,為我們提供了一個強大而靈活的工具,讓工作流自動化變得更加簡單和可控。 一、Automatisch 簡介 Automatisch 是一個商…

RAG應用效果評估框架與優化指南

1. 引言:為何RAG評估至關重要? 一個RAG系統通常包含多個可調參數和可替換組件(如不同的嵌入模型、向量數據庫、LLM、Prompt模板等)。沒有有效的評估機制,優化過程就像“盲人摸象”,難以判斷改動是否帶來了真正的提升。 RAG評估的核心目的: 量化系統性能:將RAG的“好壞…