我正在尝试选择最低值和最高值,或者在表格中的值之前或之后。 例如,我试图选择包含百分比(PERCEN_TOT)的行,大于我在搜索中传递的值。 示例:如果我在" PERCEN_TOT"中传递搜索值如果等于23,则应返回列,并且以下值或更早(根据研究)分别为" LINE"柱。 什么可以研究,是APPROX_COUNT_DISTINCT Oracle 12的功能,但是,我刚刚安装了Oracle 11。 有人可以帮帮我吗?
表格为:
CREATE TABLE INVOICE
(
INV_NUMPED VARCHAR2(6 BYTE),
INV_NUMITE NUMBER,
INV_CODPRO VARCHAR2(10 BYTE),
INV_QTDITE NUMBER,
INV_VALITE NUMBER,
INV_VALTOT NUMBER,
SUM_VTOTAL NUMBER,
PERCEN_TOT NUMBER,
LINE NUMBER
);
目录:
INSERT INTO INVOICE
(INV_NUMPED, INV_NUMITE, INV_CODPRO, INV_QTDITE, INV_VALITE,
INV_VALTOT, SUM_VTOTAL, PERCEN_TOT, LINE)
VALUES
('550830', '029', '01209434', 48, 40.6,
12698.12, 1948.8, 15, 1);
INSERT INTO INVOICE
(INV_NUMPED, INV_NUMITE, INV_CODPRO, INV_QTDITE, INV_VALITE,
INV_VALTOT, SUM_VTOTAL, PERCEN_TOT, LINE)
VALUES
('550830', '010', '01211110', 8, 50.85,
12698.12, 2355.6, 18, 2);
INSERT INTO INVOICE
(INV_NUMPED, INV_NUMITE, INV_CODPRO, INV_QTDITE, INV_VALITE,
INV_VALTOT, SUM_VTOTAL, PERCEN_TOT, LINE)
VALUES
('550830', '026', '01209431', 60, 6.13,
12698.12, 2723.4, 21, 3);
INSERT INTO INVOICE
(INV_NUMPED, INV_NUMITE, INV_CODPRO, INV_QTDITE, INV_VALITE,
INV_VALTOT, SUM_VTOTAL, PERCEN_TOT, LINE)
VALUES
('550830', '027', '01209432', 60, 6.13,
12698.12, 3091.2, 24, 4);
INSERT INTO INVOICE
(INV_NUMPED, INV_NUMITE, INV_CODPRO, INV_QTDITE, INV_VALITE,
INV_VALTOT, SUM_VTOTAL, PERCEN_TOT, LINE)
VALUES
('550830', '028', '01209433', 60, 6.13,
12698.12, 3459, 27, 5);
INSERT INTO INVOICE
(INV_NUMPED, INV_NUMITE, INV_CODPRO, INV_QTDITE, INV_VALITE,
INV_VALTOT, SUM_VTOTAL, PERCEN_TOT, LINE)
VALUES
('550830', '011', '01211109', 4, 91.61,
12698.12, 3825.44, 30, 6);
INSERT INTO INVOICE
(INV_NUMPED, INV_NUMITE, INV_CODPRO, INV_QTDITE, INV_VALITE,
INV_VALTOT, SUM_VTOTAL, PERCEN_TOT, LINE)
VALUES
('550830', '004', '01211103', 4, 83.3,
12698.12, 4158.64, 32, 7);
INSERT INTO INVOICE
(INV_NUMPED, INV_NUMITE, INV_CODPRO, INV_QTDITE, INV_VALITE,
INV_VALTOT, SUM_VTOTAL, PERCEN_TOT, LINE)
VALUES
('550830', '033', '01209439', 18, 18.23,
12698.12, 4486.78, 35, 8);
INSERT INTO INVOICE
(INV_NUMPED, INV_NUMITE, INV_CODPRO, INV_QTDITE, INV_VALITE,
INV_VALTOT, SUM_VTOTAL, PERCEN_TOT, LINE)
VALUES
('550830', '035', '01209440', 18, 18.23,
12698.12, 4814.92, 37, 9);
COMMIT;
提前致谢!
Double R
答案 0 :(得分:1)
以下似乎可以满足您的要求:
SELECT *
FROM INVOICE a
WHERE a.PERCEN_TOT = (SELECT MAX(PERCEN_TOT)
FROM INVOICE
WHERE PERCEN_TOT < 23)
UNION ALL
SELECT a.*
FROM INVOICE a
WHERE a.PERCEN_TOT = (SELECT MIN(PERCEN_TOT)
FROM INVOICE
WHERE PERCEN_TOT < 23);
如果你需要找回不同的东西,请改变它。
分享并享受。