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. debian - docker依賴的aufs-tools源碼哪里可以找到啊?2. dockerfile - 我用docker build的時候出現下邊問題 麻煩幫我看一下3. docker網絡端口映射,沒有方便點的操作方法么?4. docker-compose 為何找不到配置文件?5. macos - mac下docker如何設置代理6. docker start -a dockername 老是卡住,什么情況?7. docker 下面創建的IMAGE 他們的 ID 一樣?這個是怎么回事????8. 如何解決Centos下Docker服務啟動無響應,且輸入docker命令無響應?9. angular.js使用$resource服務把數據存入mongodb的問題。10. docker gitlab 如何git clone?

網公網安備