簡體   English   中英

MySQL查詢,多個計數和總和

[英]MySQL Query, multiple counts and sums

我有一個輸出到php表的MySQL查詢,但是在連接兩個都使用COUNT的表時遇到問題:

$query = "SELECT mqe.registration, 
        COUNT(*) AS numberofenqs,
        COUNT(DISTINCT ucv.ip) AS unique_views,
        SUM(ucv.views) AS total_views
        FROM main_quick_enquiries AS mqe
        LEFT OUTER JOIN used_car_views AS ucv
        ON ucv.numberplate = mqe.registration
        WHERE mqe.registration IS NOT NULL
        GROUP BY mqe.registration ORDER BY numberofenqs DESC";

查詢運行,但是numberofenqs列中的數字始終是錯誤的,正如我從單獨執行該查詢所知道的那樣,它具有正確的結果:

SELECT registration, COUNT(*) AS numberofenqs FROM main_quick_enquiries GROUP BY registration ORDER BY numberofenqs DESC

為什么COUNT(*)在頂部查詢代碼中無法正常工作,以及從何處獲得數據?

可能是因為左外連接...

嘗試運行此命令:

SELECT registration
, count(*)
FROM main_quick_enquiries
GROUP BY registration

並將其與此結果進行比較

SELECT mqe.registration
, count(*)
FROM main_quick_enquiries mqe
LEFT OUTER JOIN used_car_views ucv
ON ucv.numberplate = mqe.registration
GROUP BY mqe.registration

可能有問題:)在重復行中...嘗試找到一個特定的注冊號,並比較兩個查詢的詳細信息

SELECT *
FROM main_quick_enquiries
WHERE registration = XXXX

+

SELECT *
FROM main_quick_enquiries mqe
LEFT OUTER JOIN used_car_views ucv
ON ucv.numberplate = mqe.registration
WHERE registration = XXXX

你應該看到差異

謝謝大家,但我想我用COUNT(DISTINCT mqe.id)代替了COUNT(*)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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