簡體   English   中英

MySQL:計數然后按計數總數排序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM