1
我很欣賞這是一個問題已被問了幾次,我看了我能找到的答案,似乎無法找到一個適合我的特定數據集的解決方案...(主要可能是由於我的新手級別,並不完全理解排序查詢的各種元素的語法含義)。在一個查詢中有兩個(或三個?)計數MYSQL(通過phpmyadmin)
我試圖運行兩個「罪名」組合成單個結果表 - 我能得到各個表就好了 - 是能夠彙總結果將巨大加快我的分析..
具體查詢是:
(1)
SELECT `PUID`,`DROID_V`,`SIG_V`,`SPEED`
, COUNT(distinct NAME) as NoExt
FROM sourcelist, main_small
WHERE sourcelist.SourcePUID = 'MyVariableHere'
AND main_small.NAME = sourcelist.SourceFileName
AND sourcelist.hasExtension = 0
GROUP BY `PUID`,`DROID_V`,`SIG_V`,`SPEED`
ORDER BY `DROID_V` ASC, `SIG_V` ASC, `SPEED`;
和(2)
SELECT `PUID`,`DROID_V`,`SIG_V`,`SPEED`
, COUNT(distinct NAME) as Ext
FROM sourcelist, main_small
WHERE sourcelist.SourcePUID = 'MyVariableHere'
AND main_small.NAME = sourcelist.SourceFileName
AND sourcelist.hasExtension = 1
GROUP BY `PUID`,`DROID_V`,`SIG_V`,`SPEED`
ORDER BY `DROID_V` ASC, `SIG_V` ASC, `SPEED`;
如果我想要做的是有可能,我真的很想看看我是否能impliment第3計:
(3)
SELECT `PUID`,`DROID_V`,`SIG_V`,`SPEED`
, COUNT(distinct NAME) as All
FROM sourcelist, main_small
WHERE sourcelist.SourcePUID = 'MyVariableHere'
AND main_small.NAME = sourcelist.SourceFileName
GROUP BY `PUID`,`DROID_V`,`SIG_V`,`SPEED`
ORDER BY `DROID_V` ASC, `SIG_V` ASC, `SPEED`;
我不知道是否有人也許能拆散了我已經完成了,並且讓我知道我想要的是否可能 - 3個計數(表格,組條件和訂單詳細信息)有一些共同元素,不同之處在於WHERE條件。
即使有兩個計數查詢,也會有空值,其中計數A會導致不同的設置比計數B - 所以我想知道如果計數需要導致相同的基本形狀(即相同的行構建,只是不同的計數值,而不是指望特定行構建導致空換取數之一)
作品像一個魅力 - 你,S女士/女士,是一位溫順的人士和學者。謝謝。出於好奇,IF語句中的NULL子句是幹什麼的? – Jay 2012-02-03 01:16:44
這導致'COUNT'不計算任何東西 - 例如,SUM(IF(hasExtension,1,0))如hasExt'加1,如果你有擴展名,則加1,如果你不加。 'COUNT'的NULL值就像0一樣(gotcha:'COUNT(0)'和COUNT(NAME)'相同,因爲它仍然在計數器!)。我使用'COUNT'而不是'SUM'的原因是我不知道如何將'DISTINCT'合併到'SUM'中,但是我知道你可以將一個'DISTINCT'放到'COUNT'中。 – 2012-02-03 01:25:27
好吧,我想我明白了,我會查看回報,以便更好地掌握參數的含義。順便說一下,這已經幫助我找到了影響許多用戶的非瑣碎髮展問題的確切例子。真棒。謝謝。 – Jay 2012-02-03 01:32:34