[英]MySQL: Count then sort by the count total
我知道其他帖子也談到了這一點,但是我還無法對這種情況進行任何應用。
到目前為止,這就是我所擁有的。
SELECT *
FROM ccParts, ccChild, ccFamily
WHERE parGC = '26' AND
parChild = chiId AND
chiFamily = famId
ORDER BY famName, chiName
我需要做的是在結果中查看具有相同ccFamily的ccPart的總數。 然后,按總數排序。
在SELECT
,添加諸如count(ccParts) as count
然后添加ORDER BY count
? 不確定表的結構,因此您可能需要即興創作。
看起來這接近您想要的內容:
SELECT f.famId, f.famName, pc.parCount
FROM (
SELECT c.chiFamily AS famId, count(*) AS parCount
FROM
ccParts p
JOIN ccChild c ON p.parChild = c.chiId
WHERE p.parGC ='26'
GROUP BY c.chiFamily
) pc
JOIN ccFamily f ON f.famId = pc.famId
ORDER BY pc.parCount
內聯視圖(在括號之間)是頭條新聞:它進行分組和計數。 請注意,由於表ccChild
已包含家庭信息,因此您無需將表ccFamily
加入該表中以按家庭ccChild
。 如果您不需要姓氏(即,如果其ID足夠),則可以僅使用內聯視圖,並在ORDER BY count(*)
。 外部查詢僅將姓氏與結果相關聯。
另外,MySQL提供了一種非標准的機制,您可以通過該機制將外部查詢與內聯視圖結合使用,但是在這種情況下,無論是清晰還是簡潔,它都無濟於事。 我提供的查詢應為任何SQL實現所接受,並且首先學習此類語法和方法對您有利。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.