Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 选择最大值而不使用最大值_Sql_Select - Fatal编程技术网

Sql 选择最大值而不使用最大值

Sql 选择最大值而不使用最大值,sql,select,Sql,Select,请问,如果不使用最小值/最大值函数,如何从选择中获得相同的结果? 我需要venda表中的Vendor_nome和最高venda_valor CREATE TABLE Vendedor(vendedor_id integer, vendedor_nome text); CREATE TABLE Venda(venda_id integer, vendedor_id integer,vendedor_data date, venda_valor double); INSERT INTO Vend

请问,如果不使用最小值/最大值函数,如何从选择中获得相同的结果? 我需要venda表中的Vendor_nome和最高venda_valor

CREATE TABLE Vendedor(vendedor_id integer, vendedor_nome text);

CREATE TABLE Venda(venda_id integer, vendedor_id integer,vendedor_data date,
venda_valor double);

INSERT INTO Vendedor VALUES(1,'Joao');
INSERT INTO Vendedor VALUES(2,'Maria');
INSERT INTO Vendedor VALUES(3,'Pedro');

INSERT INTO Venda VALUES(1,1,'2016-01-01',5000);
INSERT INTO Venda VALUES(2,1,'2016-08-01',2000);
INSERT INTO Venda VALUES(3,1,'2017-01-01',10000);
INSERT INTO Venda VALUES(4,2,'2016-02-02',15000);
INSERT INTO Venda VALUES(5,2,'2016-01-01',9000);
INSERT INTO Venda VALUES(6,2,'2017-01-01',12000);
INSERT INTO Venda VALUES(7,3,'2016-08-01',1000);
INSERT INTO Venda VALUES(8,3,'2017-03-30',15000);
INSERT INTO Venda VALUES(9,3,'2017-09-08',25000);

SELECT A.VENDEDOR_NOME, MAX(venda_valor) 
FROM Vendedor as A 
LEFT JOIN Venda as B ON (A.VENDEDOR_ID = B.VENDEDOR_ID) 
WHERE B.vendedor_data between '2016-01-01' and '2016-12-31'
GROUP BY 1;
使用窗口功能:

select v.vendedor_nome, ve.*
from venedor v left join
     (select ve.*,
             row_number() over (partition by ve.vendedor_id order by ve.venda_valor desc) as seqnum
      from venda ve
     ) ve
     on ve.vendedor_id = v.vendedor_id and ve.seqnum = 1;

. . 用你正在使用的数据库标记你的问题。它工作得很好。我刚刚在orderby函数中添加了一个desc。多谢各位