Oracle
 sql >> база данни >  >> RDS >> Oracle

Как да използвам различни и сумирани заедно в Oracle?

Бих бил много внимателен със структура от данни като тази. Първо проверете дали всички id имат точно една цена:

select id
from table t
group by id
having count(distinct price) > 1;

Мисля, че най-безопасният метод е да се извлече определена цена за всеки id (кажете максимума) и след това направете агрегацията:

select sum(price)
from (select id, max(price) as price
      from table t
      group by id
     ) t;

След това отидете да поправите данните си, така че да нямате повтарящо се допълнително измерение. Трябва да има таблица с по един ред за идентификатор и цена (или може би с дубликати, но контролирани от ефективни и крайни дати).

Данните са объркани; не трябва да приемате, че цената е една и съща за всички редове за даден идентификатор. Трябва да го проверявате всеки път, когато използвате полетата, докато не коригирате данните.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Unpivot on view не работи в Oracle

  2. Oracle:Какво означава „незабавно изпълнение“?

  3. Едновременни актуализации в Oracle:Заключване или не?

  4. Топ n различни стойности на една колона в Oracle

  5. IF EXISTS условието не работи с PLSQL