我試圖向右報告按性別來獲得在我的系統的所有種族的崩潰。集團通過查詢導致不正確的數據出現
我有這個疑問,我認爲是工作,但所有的日期是在查詢中,他們是不是個別表中的一樣。我認爲group_by導致了一個問題,但我不是100%,我不知道如何恰當地糾正這個查詢。
SELECT f1.field_name, count(*) AS total
FROM application_fields f1
JOIN application_fields_values v1 ON v1.application_field_id = f1.id
JOIN application_fields_values v2 ON v1.applicant_id = v2.applicant_id
JOIN application_fields f2 ON v2.application_field_id = f2.id
JOIN templates t ON f1.template_id = t.id
JOIN template_fields tf ON f1.template_field_id = tf.id
WHERE v1.field_value = 1
AND v2.field_value = 1
AND f2.field_name = 'Male'
AND f1.field_name != 'Male'
-- AND f1.created_at BETWEEN '2014-01-01' AND '2014-12-31'
AND tf.id IN (9, 10, 11, 12, 13, 14, 15)
GROUP BY f1.field_name
ORDER BY f1.id;
此輸出:
FIELD_NAME CREATED_AT CREATED_AT TOTAL
Hispanic or Latino. 2013-06-20 02:35:56 2013-06-20 02:35:56 6
Caucasion. 2013-06-20 02:35:56 2013-06-20 02:35:56 26
African American. 2013-06-20 02:35:56 2013-06-20 02:35:56 25
Native Hawaiian. 2013-06-20 02:35:56 2013-06-20 02:35:56 1
Asian. 2013-06-20 02:35:56 2013-06-20 02:35:56 2
American Indian. 2013-06-20 02:35:56 2013-06-20 02:35:56 2
Two or more races . 2013-06-20 02:35:56 2013-06-20 02:35:56 1
我希望能夠按日期過濾此(你可以在我註釋掉線看),但因爲所有的日期都是一樣的,這不是正常工作在這個查詢中,當他們絕對不在表中時。
即使MySQL允許你不匹配by子句的選擇和組,我還沒有看到它是一個好主意。 –
我只在查詢中添加'created_at'日期進行調試。如果我從select語句中取出'created_at'字段,我仍然沒有獲取數據。 – Catfish