考慮返回行的結果,並在您的應用程序之後他們旋轉顯示。
要返回所需的結果行,可以使用下面的查詢:
SELECT
engagementCount,
COUNT(*) AS userCount
FROM (
SELECT
userID,
COUNT(*) AS engagementCount
FROM engagements
GROUP BY userID
) AS s
GROUP BY engagementCount
;
基本上,第一組engagements
行通過userID
,每位userID
的行數。之後,您使用計數作爲分組標準並計算在該計數中找到了多少用戶。
如果您堅持要返回SQL中的柱狀視圖,則需要求助於動態SQL,因爲最終結果集中的列數不確定。你可能會需要臨時存儲的內部SELECT的結果,進行掃描,以建立數表達式的列表,每engagementCount
價值,並最終建立這樣的查詢:
SELECT
COUNT(engagementCount = 1 OR NULL) AS `1eng`,
COUNT(engagementCount = 2 OR NULL) AS `2eng`,
COUNT(engagementCount = 3 OR NULL) AS `3eng`,
...
FROM temporary_storage
;
或者SUM(engagementCount = value)
代替COUNT(engagementCount = value OR NULL)
。 (對我而言,後者更明確地表達了意圖,因此我首先提出了它的意圖,但是,如果您碰巧喜歡SUM
技術,則兩者之間的性能應該沒有明顯差異。 here。)
你有任何代碼嗎? –
或者至少你的表模式? –
我有訂婚表(engagement_id(auto),brandID,handle,postID,userID,engagementID,clikes,回覆,內容,發佈(日期時間),engagementType(喜歡,評論等))的數據庫架構。我將這些數據從api獲取到數據庫中 – sizzyfrisky