【发布时间】:2014-01-13 16:08:16
【问题描述】:
我在 MySQL 中进行查询,结果未按百分比排序。如何强制按百分比排序?它按total_sold 排序,而不是按百分比排序。
代码如下:
SELECT in_disassembly.car_id,
in_disassembly.cost,
IFNULL(SUM(product_sold.product_total_price),0) AS total_sold,
concat((IFNULL(SUM(product_sold.product_total_price),0)
/in_disassembly.cost * 100)) AS percentage_sold
FROM in_disassembly
INNER JOIN product_sold ON product_sold.product_car_id = in_disassembly.car_id
WHERE in_disassembly.car_id > $start_id AND in_disassembly.car_id < $end_id
GROUP BY in_disassembly.car_id
ORDER BY percentage_sold
固定代码
SELECT in_disassembly.car_id, in_disassembly.cost, IFNULL(SUM(product_sold.product_total_price),0) AS total_sold, ROUND((IFNULL(SUM(product_sold.product_total_price),0)/in_disassembly.cost * 100),0) AS percentage_sold
FROM in_disassembly
INNER JOIN product_sold ON product_sold.product_car_id = in_disassembly.car_id
WHERE in_disassembly.car_id > $start_id AND in_disassembly.car_id < $end_id GROUP BY in_disassembly.car_id ORDER BY percentage_sold DESC
【问题讨论】:
-
ORDER BY percent_sold +0 请注意,CONCAT 没有任何用处。连接总是可以在应用程序代码中完成。
-
您知道您正在使用
GROUP BY的非标准 MySQL 扩展,对吧?这会产生奇怪的结果。阅读:dev.mysql.com/doc/refman/5.1/en/group-by-extensions.html
标签: mysql join sql-order-by