您的位置:首頁技術文章
文章詳情頁

mysql - 關于sql語句中的with從句和group by分組

瀏覽:102日期:2022-06-14 14:35:34

問題描述

初涉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數量。

相關文章:
国产综合久久一区二区三区