目錄
回复内容:
首頁 後端開發 php教程 mysql关联查询并得到某条数据的排名。

mysql关联查询并得到某条数据的排名。

Jun 06, 2016 pm 08:07 PM
mysql php

现在有一个订单表,表中有一字段shop_id(店铺id),还有一个shop表(店铺表),现在我想得到某个店铺所有订单总额在所有店铺里面的排名,这个sql语句该怎么写呢?或者说有什么简单的办法去实现呢?

ps:店铺表中没有销售总额字段,我现在是先将所有店铺的销售额进行排序,但是如果去遍历数组比较某个店铺的销售额的排名实在是太麻烦了

回复内容:

现在有一个订单表,表中有一字段shop_id(店铺id),还有一个shop表(店铺表),现在我想得到某个店铺所有订单总额在所有店铺里面的排名,这个sql语句该怎么写呢?或者说有什么简单的办法去实现呢?

ps:店铺表中没有销售总额字段,我现在是先将所有店铺的销售额进行排序,但是如果去遍历数组比较某个店铺的销售额的排名实在是太麻烦了

<code>SELECT a.id,a.shopname,sum(b.order_price) FROM tb_shop a LEFT JOIN tb_item_order b on a.id=b.shop_id GROUP BY a.id ORDER BY sum(b.order_price) desc</code>
登入後複製

亲测,可以实现题主的需求

麻烦的很,最佳办法就是表里增加销售总额字段,不然的话每次要排名就要统计一次,数据库肯定挂。这种应用肯定是你进店铺的时候显示一个排名信息,N个人进不同的店铺,你要统计N次每个店铺的销售总额吗?

正解是增加销售总额和排名字段,使用定时任务每天更新一次。

SELECT a.id, sum(b.price) as total_price FROM shop a, order b 
WHERE a.id = b.shop_id 
GROUP BY a.id 
ORDER BY total_price desc
登入後複製

简单想了下,两个思路
一是先算出这个店铺的销售额是多少,然后去所有店铺销售额的结果集中找大于这个值的count数
二是引入预定义用户变量来实现,set @mycnt = 0; select (@mycnt := @mycnt + 1) as ROWNUM
另外如果这个总排名很常用的话,还是建议建立一个总额的字段

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

PHP的未來:改編和創新 PHP的未來:改編和創新 Apr 11, 2025 am 12:01 AM

PHP的未來將通過適應新技術趨勢和引入創新特性來實現:1)適應云計算、容器化和微服務架構,支持Docker和Kubernetes;2)引入JIT編譯器和枚舉類型,提升性能和數據處理效率;3)持續優化性能和推廣最佳實踐。

PHP與Python:了解差異 PHP與Python:了解差異 Apr 11, 2025 am 12:15 AM

PHP和Python各有優勢,選擇應基於項目需求。 1.PHP適合web開發,語法簡單,執行效率高。 2.Python適用於數據科學和機器學習,語法簡潔,庫豐富。

phpmyadmin怎麼打開 phpmyadmin怎麼打開 Apr 10, 2025 pm 10:51 PM

可以通過以下步驟打開 phpMyAdmin:1. 登錄網站控制面板;2. 找到並點擊 phpMyAdmin 圖標;3. 輸入 MySQL 憑據;4. 點擊 "登錄"。

MySQL和SQL:開發人員的基本技能 MySQL和SQL:開發人員的基本技能 Apr 10, 2025 am 09:30 AM

MySQL和SQL是開發者必備技能。 1.MySQL是開源的關係型數據庫管理系統,SQL是用於管理和操作數據庫的標準語言。 2.MySQL通過高效的數據存儲和檢索功能支持多種存儲引擎,SQL通過簡單語句完成複雜數據操作。 3.使用示例包括基本查詢和高級查詢,如按條件過濾和排序。 4.常見錯誤包括語法錯誤和性能問題,可通過檢查SQL語句和使用EXPLAIN命令優化。 5.性能優化技巧包括使用索引、避免全表掃描、優化JOIN操作和提升代碼可讀性。

mysql:簡單的概念,用於輕鬆學習 mysql:簡單的概念,用於輕鬆學習 Apr 10, 2025 am 09:29 AM

MySQL是一個開源的關係型數據庫管理系統。 1)創建數據庫和表:使用CREATEDATABASE和CREATETABLE命令。 2)基本操作:INSERT、UPDATE、DELETE和SELECT。 3)高級操作:JOIN、子查詢和事務處理。 4)調試技巧:檢查語法、數據類型和權限。 5)優化建議:使用索引、避免SELECT*和使用事務。

php:死亡還是簡單地適應? php:死亡還是簡單地適應? Apr 11, 2025 am 12:13 AM

PHP不是在消亡,而是在不斷適應和進化。 1)PHP從1994年起經歷多次版本迭代,適應新技術趨勢。 2)目前廣泛應用於電子商務、內容管理系統等領域。 3)PHP8引入JIT編譯器等功能,提升性能和現代化。 4)使用OPcache和遵循PSR-12標準可優化性能和代碼質量。

sql數據庫錯誤怎麼查看 sql數據庫錯誤怎麼查看 Apr 10, 2025 pm 12:09 PM

SQL數據庫錯誤查看方法有:1. 直接查看錯誤消息;2. 使用SHOW ERRORS和SHOW WARNINGS命令;3. 訪問錯誤日誌;4. 使用錯誤代碼查找錯誤原因;5. 檢查數據庫連接和查詢語法;6. 使用調試工具。

phpmyadmin連接mysql phpmyadmin連接mysql Apr 10, 2025 pm 10:57 PM

如何使用 phpMyAdmin 連接到 MySQL?訪問 phpMyAdmin 的 URL,通常為 http://localhost/phpmyadmin 或 http://[您的服務器 IP 地址]/phpmyadmin。輸入您的 MySQL 用戶名和密碼。選擇您要連接的數據庫。點擊 "連接" 按鈕以建立連接。

See all articles