Oracle SQL Query - поиск количества кортежей с одинаковым значением атрибута в одной таблице - PullRequest
0 голосов
/ 27 сентября 2019

Я вижу спасибо за ответ, ребята, я не осознавал, что в SQL было так много других функций, которые можно использовать.

Ответы [ 3 ]

0 голосов
/ 27 сентября 2019

Используя приведенный ниже запрос, вы можете уменьшить количество вызовов функции SUSTR.

select * from (
  with A as
  (select SUBSTR(RECEIPTNO, 0, 3) aa from purchase)
   select count(*) cc from A
  group by aa
  )
where cc > 10
0 голосов
/ 27 сентября 2019

Вы можете использовать аналитическую функцию count() следующим образом:

SELECT
    SUM(COND_MET) AS RESULT
FROM
    (
        SELECT
            CASE
                WHEN COUNT(1) OVER(
                    PARTITION BY SUBSTR(RECEIPTNO, 0, 3)
                ) > 10 THEN 1
            END AS COND_MET
        FROM
            PURCHASE
    );

Cheers !!

0 голосов
/ 27 сентября 2019

без использования join и group by, это то, что я придумал, используя row_number() для генерации уникальных строк по PURCHASE.RECEIPTNO.

select count(distinct receipt_no) from (
select row_number() over (partition by SUBSTR(RECEIPTNO, 0, 3) order by message) rn
     , SUBSTR(RECEIPTNO, 0, 3)  as receipt_no
from PURCHASE)
where rn >= 10
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...