繁体   English   中英

如何在一个表中选择不同的值?

[英]How can I select different values in one table?

INST | MAXRATE | MAXDATE  | TAX |
--------------------------------
1    |   1.5   |  17      |  0  |     
2    |   0     |  20      |  0  |   
3    |   0     |  35      |  0  |   
4    |   0     |  45      |  18 |    
5    |   0     |  50      |  1  |

我有一张这样的桌子。 我想在每一行中选择一个最大值。 例如,第一列有一个 INST,我想选择最大值。 我还想选择 50 作为 MAXDATE。 我该如何选择这些值? 这是我想要的示例输出。

INST | MAXRATE | MAXDATE  | TAX |
---------------------------------
5    |   1.5   |  50      |  18 |
CREATE TABLE t1 (
  INST NUMBER, MAXRATE NUMBER, MAXDATE NUMBER, TAX NUMBER
);

INSERT INTO t1 (INST, MAXRATE, MAXDATE, TAX) VALUES (1,  1.5, 17, 0);
INSERT INTO t1 (INST, MAXRATE, MAXDATE, TAX) VALUES (2,  0,   20, 0);
INSERT INTO t1 (INST, MAXRATE, MAXDATE, TAX) VALUES (3,  0,   35, 0);
INSERT INTO t1 (INST, MAXRATE, MAXDATE, TAX) VALUES (4,  0,   45, 18);
INSERT INTO t1 (INST, MAXRATE, MAXDATE, TAX) VALUES (5,  0,   50, 1);

SELECT MAX(INST), MAX(MAXRATE), MAX(MAXDATE), MAX(TAX) FROM t1;

https://sqlize.online/sql/oracle21/d281b1d5c7e91c8779773733c4f4273e/

你能试试这个想法或类似的东西吗?

SELECT MAX(INST) max_inst, b.max_maxrate
FROM YourTable a
INNER JOIN (
    SELECT inst, MAX(maxrate) max_maxrate
    FROM YourTable
    GROUP BY inst
) b 
ON a.inst = b.inst AND a.maxrate = b.maxrate

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM