我想根據條件選擇數據:我有一張表physician_key和給定月份的相應質量分數。我想選擇質量得分爲1,2的不同醫師的數量。 對於一個月,醫生密鑰可能會有更多條目,因此分配的質量(按比例1-7)。我只想選擇那些有質量的醫生的數量(1,2),如果同一個醫生在給定的月份中質量> 2,我不想指望那位醫生。我希望按產品和月份的信息如何在MySql查詢中處理這個問題?
回答
試試這個:
SELECT count(DISTINCT physician_key)
FROM my_table
WHERE month = desired_month
AND max(quality) = 2
GROUP BY month
即使同一位醫生有一次質量得分爲1或2,他仍然會選擇計數,但是他可能在另一天得到高分,如果這種情況我不想'選擇他' – user2542275
我編輯了'SELECT '這樣它現在只考慮醫生已經達到了最多2. – Nerius
謝謝,我會嘗試 – user2542275
我創建了一個示例表,因爲你沒有提供一個:
mysql> select * from sales_mkt_rep_qual;
+-------------------+---------+-------+-------------------+
| GEO_PHYSICIAN_KEY | product | month | SALES_REP_QUALITY |
+-------------------+---------+-------+-------------------+
| 1 | a | 8 | 1 |
| 1 | a | 8 | 2 |
| 1 | a | 8 | 3 |
| 2 | b | 8 | 2 |
| 2 | b | 8 | 1 |
| 2 | b | 9 | 2 |
| 1 | a | 9 | 2 |
| 2 | b | 9 | 3 |
| 3 | a | 9 | 2 |
+-------------------+---------+-------+-------------------+
從您的評論的查詢的確給出了一個錯誤:
SELECT COUNT(DISTINCT GEO_PHYSICIAN_KEY) AS encount_1to2,
product,MONTH
FROM sales_mkt_rep_qual
WHERE MAX(SALES_REP_QUALITY) = 2 ;
ERROR 1111 (HY000): Invalid use of group function
如果更改到:
SELECT DISTINCT geo_physician_key AS encount_1to2, product, month
FROM sales_mkt_rep_qual
WHERE (geo_physician_key,month,product)
NOT IN (
SELECT geo_physician_key, month, product
FROM sales_mkt_rep_qual
WHERE sales_rep_quality >2 );
你看到詳細結果:
+--------------+---------+-------+
| encount_1to2 | product | month |
+--------------+---------+-------+
| 2 | b | 8 |
| 1 | a | 9 |
| 3 | a | 9 |
+--------------+---------+-------+
不,你可以介紹計數:
SELECT COUNT(distinct geo_physician_key) AS no_of_physicians,product, month
FROM sales_mkt_rep_qual
WHERE (geo_physician_key,month,product)
NOT IN (
SELECT geo_physician_key, month, product
FROM sales_mkt_rep_qual WHERE sales_rep_quality >2 )
GROUP BY month, product;
+------------------+---------+-------+
| no_of_physicians | product | month |
+------------------+---------+-------+
| 1 | b | 8 |
| 2 | a | 9 |
+------------------+---------+-------+
如果仍然不你在找什麼,給出更具體的表格結構和數據的例子。
實際上我想要的數據像 + -------------- + --------- + ----- - + | encount_1to2 |產品|月| + -------------- + --------- + ------- + | 2 | b | 8 | + -------------- + --------- + ------- + 和條件SALES_REP_QUALITY <= 2,不存在在選擇不同的地理醫生密鑰的同時,可能會選擇第2個,因爲它符合標準?這就是爲什麼我使用了最大功能的Thanix方法,並在一個月內對每個產品都應用了聚合函數 – user2542275
希望它現在能夠工作 - 更改了我的答案。 – KlusterGuy
實際上,用不同的用戶名再次提出問題是不好的形式。 – KlusterGuy
事實上,我希望數據是像下面的輸出:
+--------------+---------+-------+
| encount_1to2 | product | MONTH |
+--------------+---------+-------+
| 2 | b | 8 |
+--------------+---------+-------+
和用於標準SALES_REP_QUALITY < = 2,不存在一種可能性,即在選擇的不同地理醫師關鍵,它可能選擇考慮到它符合標準,從第2個開始?這就是我使用最大功能的Thanix方法的原因,以便在一個月內對每個產品應用聚合函數。
- 1. 如何處理\查詢mysql
- 2. 如何處理MySQL查詢
- 3. 如何Prolog的處理這個查詢
- 4. 如何處理這個SQL查詢
- 5. 如何在MySQL,Group_Concat中處理像這樣的查詢?
- 6. 這個MYSQL查詢有什麼問題
- 7. 這個MySQL查詢有什麼問題
- 8. 這個mysql查詢有什麼問題?
- 9. 這個MySQL查詢有什麼問題?
- 10. 這個mySQL查詢有什麼問題?
- 11. 這個MySQL查詢有什麼問題?
- 12. 這個MySQL查詢有問題
- 13. 這個mysql查詢有什麼問題?
- 14. 這個MySQL查詢有什麼問題
- 15. 這個mysql查詢有什麼問題?
- 16. 這個Mysql查詢有什麼問題
- 17. 這個mysql查詢有什麼問題?
- 18. 這個MYSQL查詢有什麼問題?
- 19. 這個mysql查詢有什麼問題?
- 20. 這個MySQL查詢有什麼問題?
- 21. 這個MySQL查詢有問題嗎?
- 22. 這個mysql查詢有什麼問題..?
- 23. 我該如何處理這個問題?
- 24. MySQL查詢問題理貨
- 25. 如何提高這個mysql查詢處理的速度
- 26. 我該如何使用mysql查詢來解決這個問題?
- 27. 如何處理這個圖像處理的問題 - 分類
- 28. 在網絡應用程序中如何處理這個問題?
- 29. 我應該如何在Qt中處理這個線程問題?
- 30. 如何在GIT中處理這個合併問題
歡迎來到SO。如果你做了幾件事情,你會得到更好的幫助:首先,將你的問題標題改爲描述性的。 (幾乎所有東西都歸結爲「如何做到這一點?」)其次,如果沒有表格模式的描述,這個問題很難回答。 – eaj