sql - 如何使用多个查询选择最高价格

标签 sql oracle oracle11g

我已经创建了两个表,表和数据插入值如下:

create table product (
pid number(10) primary key,
pname varchar2(30)
);

INSERT INTO product values(100,'Apple');
INSERT INTO product values(101,'Banana');
INSERT INTO product values(102,'Pinaple');
INSERT INTO product values(103,'Orange');

create table purchase(
invid  number(10) primary key,
pid number(10),
pprice number(10)
);
alter table purchase add(constraint pid_fk FOREIGN KEY (pid) references  product(pid));

INSERT INTO  purchase values(10,101,30);
INSERT INTO  purchase values(11,103,35);
INSERT INTO  purchase values(12,103,9);
INSERT INTO  purchase values(13,103,22);
INSERT INTO  purchase values(14,101,12);

现在我已经选择表购买显示给出数据

invid    pid  pprice
10       101   30
11       103   35
12       103    9
13       103   22
14       101   12

现在我想成为最后插入价格 pid=103 现在需要显示 pprice=22 我已经准备好使用两个查询完成任务,例如:

select max(invid) from purchase where pid=103;

结果是 22 并运行下一条语句

select max(pprice) from purchase where invid=13;

显示结果=22 我想使用运行一个语句来显示结果 22,

最佳答案

可能最直接的方法是使用子查询:

SELECT MAX(pprice)
FROM purchase
WHERE invid = (SELECT MAX(invid) FROM purchase WHERE pid = 103)

旁注,您不需要根据示例数据进行 MAX() pprice ,但我保留了这种方式,以防您实际需要它数据集。

关于sql - 如何使用多个查询选择最高价格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47638307/

相关文章:

sql - 如何检查 SQL 表行的大小(以 b/kb/mb 为单位)?

sql - 在子查询中使用查询值从另一个表获取计数数据

MySQL ON DUPLICATE KEY UPDATE 不更新但插入

java - 使用hibernate执行原生sql

oracle - oracle db中的条件唯一约束

database - 请求有关在 Oracle 11g 中定义主键的建议

MySQL自动增量加上一列中的字母数字

oracle - TNS :could not resolve the connect identifier specified

c# - 对表进行大量似乎同时发生的更改

performance - 如何检查查询执行的次数?