mysql - 關于sql語句中的with從句和group by分組
問題描述
初涉SQL,對于其中with和group by從句搭配sum,max方法的使用邏輯有一些疑問
例如,數據庫中有以下幾個table
Customer (cusid, cusname, cusphone, cuscity); Driver (did, dname, dphone, dcity); CarOwnership (did, carid); Car (carid, carbrand, carsize); Trips (cusid, carid, did, getontime, getofftime, price, distance);
要output出 carbrand。這個carbrand是最多distinct customer使用過的,即求每一種carbrand的distinct cusid數量sum,再求max這個數量的carbrand,應該如何使用sql語句實現呢?
問題解答
回答1:題主是想選出“乘客最喜愛的車型”。以下Postgresql代碼未測試:
select carbrand, count(*) as customersfrom ( select distinct carbrand, cusid from Trips inner join Car using (carid)) as brand_cusidgroup by carbrandorder by customers desclimit 10
brand_cusid是車型-乘客的關系表,已做distinct處理。
然后按carbrand分組并按行數從大到小排序,并顯示前10個車型。
注意這些車型有可能是并列第一的。這時可增加limit數量。
相關文章:
1. mysql 查詢身份證號字段值有效的數據2. 視頻文件不能播放,怎么辦?3. node.js - nodejs開發中常用的連接mysql的庫4. python bottle跑起來以后,定時執行的任務為什么每次都重復(多)執行一次?5. mysql - 把一個表中的數據count更新到另一個表里?6. 請教使用PDO連接MSSQL數據庫插入是亂碼問題?7. mysql - 分庫分表、分區、讀寫分離 這些都是用在什么場景下 ,會帶來哪些效率或者其他方面的好處8. python - 爬蟲模擬登錄后,爬取csdn后臺文章列表遇到的問題9. visual-studio - Python OpenCV: 奇怪的自動補全問題10. Python爬蟲如何爬取span和span中間的內容并分別存入字典里?
