成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

mysql - 關(guān)于sql語(yǔ)句中的with從句和group by分組

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

問(wèn)題描述

初涉SQL,對(duì)于其中with和group by從句搭配sum,max方法的使用邏輯有一些疑問(wèn)

例如,數(shù)據(jù)庫(kù)中有以下幾個(gè)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。這個(gè)carbrand是最多distinct customer使用過(guò)的,即求每一種carbrand的distinct cusid數(shù)量sum,再求max這個(gè)數(shù)量的carbrand,應(yīng)該如何使用sql語(yǔ)句實(shí)現(xiàn)呢?

問(wèn)題解答

回答1:

題主是想選出“乘客最喜愛(ài)的車型”。以下Postgresql代碼未測(cè)試:

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是車型-乘客的關(guān)系表,已做distinct處理。

然后按carbrand分組并按行數(shù)從大到小排序,并顯示前10個(gè)車型。

注意這些車型有可能是并列第一的。這時(shí)可增加limit數(shù)量。

相關(guān)文章: