PHP生成错误的算术结果
我有一个PHP脚本,它启动一个mysql查询并返回一个包含聚合列的结果集 我需要对这些列进行进一步的聚合,因此在我的脚本中已经这样做了 问题在于,对于20个限值中的前7个结果,计算结果明显不正确 这与桌子很大有关吗?3.5米行 我可以在SQL级别完成额外的聚合吗?假设A是聚合,B是聚合,我可以做C=B/A列吗PHP生成错误的算术结果,php,mysql,Php,Mysql,我有一个PHP脚本,它启动一个mysql查询并返回一个包含聚合列的结果集 我需要对这些列进行进一步的聚合,因此在我的脚本中已经这样做了 问题在于,对于20个限值中的前7个结果,计算结果明显不正确 这与桌子很大有关吗?3.5米行 我可以在SQL级别完成额外的聚合吗?假设A是聚合,B是聚合,我可以做C=B/A列吗 编辑:非常感谢这两个答案,很难选择接受哪一个,因为它们都以不同的方式帮助了我。不过,我决定接受答案,该答案提供了有关问题标题的更多细节。这可能是因为您正在对格式化字符串执行算术运算 尝试:
编辑:非常感谢这两个答案,很难选择接受哪一个,因为它们都以不同的方式帮助了我。不过,我决定接受答案,该答案提供了有关问题标题的更多细节。这可能是因为您正在对格式化字符串执行算术运算 尝试: 编辑: 事实上,我确信这就是发生的事情:
echo '15,263,316' / '568,393'; // 0.026408450704225
echo 15263316 / 568393; //26.853455267746
这可能是因为您正在对格式化字符串执行算术运算 尝试: 编辑: 事实上,我确信这就是发生的事情:
echo '15,263,316' / '568,393'; // 0.026408450704225
echo 15263316 / 568393; //26.853455267746
它不起作用,因为您使用的是格式化的数字,比如27002864,而不是27002864。 是的,在SQL中更容易:
SELECT 4_nationality.nationality, COUNT(DISTINCT(txn_id)) as numtrans,
SUM(sales) as sales, SUM(units) as units, YrQtr,
sum(sales)/count(distinct txn_id) atvc,
sum(units)/count(distinct txn_id) upbc,
sum(sales)/sum(units) arp
FROM 1_txns INNER JOIN 4_nationality USING (nationality_id)
WHERE YrQtr LIKE :period
GROUP BY nationality_id
ORDER BY numtrans DESC
LIMIT 20
它不起作用,因为您使用的是格式化的数字,比如27002864,而不是27002864。 是的,在SQL中更容易:
SELECT 4_nationality.nationality, COUNT(DISTINCT(txn_id)) as numtrans,
SUM(sales) as sales, SUM(units) as units, YrQtr,
sum(sales)/count(distinct txn_id) atvc,
sum(units)/count(distinct txn_id) upbc,
sum(sales)/sum(units) arp
FROM 1_txns INNER JOIN 4_nationality USING (nationality_id)
WHERE YrQtr LIKE :period
GROUP BY nationality_id
ORDER BY numtrans DESC
LIMIT 20