版本:mySQLi PHP 5.4.45
我正在尝试计算每个唯一ID的面板数。相反,我得到每个ID的测试总数。
查询前:(示例)
eReq | panel_name | test
------------------------
500 | tox | Butabital
500 | tox | Amphetamine
500 | tox | MethAmp
500 | chem | CBC
600 | tox | Morphine
600 | chem | CBC
查询:
SELECT panel_name, count(*)
FROM `ordered_codes`
JOIN samples ON ordered_codes.tox_id = samples.tox_id
JOIN orders_codes ON ordered_codes.code_id = orders_codes.id
GROUP BY panel_name
当前结果:
panel_name | Count(*)
---------------------
tox | 4
chem | 2
所需的结果:(数字应该低一些-用eReq计算panel_name)
panel_name | Count(*)
---------------------
tox | 2
chem | 2
我觉得这很简单,在这一点上我只是想得太多。
最佳答案
您在寻找count(distinct)
吗?
SELECT panel_name, count(distinct ereq)
FROM ordered_codes oc JOIN
samples s
ON oc.tox_id = s.tox_id
GROUP BY panel_name
我不明白为什么要对
ordered_codes
进行两次连接,所以我删除了第二个,假设它是一个错字。您的查询将生成语法错误。关于php - 计算每个不同ID的不同值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51469258/