PostgreSQL的自定义排序功能
问题描述:
我想选择在沿着这些路线定义的数据库排序目的的最大值,PostgreSQL的自定义排序功能
cars_sold INTEGER,
tires_sold INTEGER,
batteries_sold INTEGER,
,我想基于这样的事情进行排序,并返回前total_sold,
total_sold = (cars_sold * 100) + (tires_sold * 10) + (batteries_sold * 2)
是否有这样的东西的集合函数,或者我是否需要写我自己的函数? 另外,这样的功能的成本会是荒谬的吗? 谢谢,
答
欧文是正确的,你应该始终包括你的PostgreSQL版本,你可以尽可能多的架构信息,但是......至少在PostgreSQL上9.3,下面的工作:
create temp table foo(cars_sold int, tires_sold int, batteries_sold int);
insert into foo values (1, 2, 3);
insert into foo values (2, 3, 4);
insert into foo values (10, 3, 4);
insert into foo values (0, 6, 7);
select *, (cars_sold * 100) + (tires_sold * 10) + (batteries_sold * 2) as total_sold
from foo
order by total_sold;
所有缺少基本信息。 Postgres版本,表格定义,样本数据,所需结果的正确描述。你有什么尝试?请改善你的问题。 –