【发布时间】:2014-09-06 19:59:35
【问题描述】:
$req = $db->prepare('SELECT AVG(CASE target WHEN ("NPS" OR "NA") THEN target ELSE NULL end) AS target, AVG(CASE planned_qty WHEN ("NA" OR "NPS") THEN null ELSE planned_qty end) AS planned_qty, AVG(CASE encap_planned WHEN ("NA" OR "NPS") THEN null ELSE encap_planned end) AS encap_planned,AVG(CASE open_wo WHEN ("NA" OR "NPS") THEN null ELSE open_wo end) AS open_wo WHERE date_production >= CAST("'.$dateArray[0].'" AS DATE) AND date_production <= CAST("'.$dateArray[6].'" AS DATE)');
- ID = 1(Primary_Key)
- 目标 = 700 (VARCHAR)
- Planned_qty = NA (VARCHAR)
- encap_planned = NPS (VARCHAR)
- open_wo = 2 (VARCHAR)
我的查询成功执行 (700 + 2)/2 = 351,它不考虑“NA”和“NPS”这两个字符。
我要求忽略所有字符并仅计算数字的 AVG。
我想通过 case 语句来使用它。 AVG(case ... when ... end)
谢谢
【问题讨论】:
标签: php mysql sql database pdo