Joomla 3.1 Templates by FatCow Coupon

Hесложный способ перевернуть запрос с группировкой

Hесложный способ перевернуть запрос с группировкой
-- условимся, что перечень значений свойств был ограничен
-- для примера создадим таблицу со следующими полями 
-- 1) Название
-- 2) Цвет
-- по условиям задачи у нас сеть конечное количество цветов красный , зеленый , синий

create table t1(tid number,tname varchar2(20),tprop varchar2(20));

Подробнее...

Как работают RollUp и Cube?

Подари,продай, обменяй - множество недорогих и отличных вещей объявления вместо AVITO - ВКонтакте

-- rollup и cube специальные групповые опepации oracle 
-- применяются начиная с версии 8i 
-- очень удобно использовать rollup cube при подведении итогов
-- некоторые из операций могут быть заменены га аналитический sql

-- давайте разберем на примерах

Подробнее...

Случайность в PL SQL - DBMS_RANDOM

Для работы со случайными значениями в PL SQL используется пакет DBMS_RANDOM
DBMS_RANDOM пакет содержит встроенный генератор случайных чисел

Модель безопасности 
Этот пакет должен быть установлен как SYS . По умолчанию в пакете инициализируется с текущим именем пользователя, текущее время с точностью до секунды, и на нынешней сессии. Oracle рекомендует пользователям, которым необходимо выполнять этот пакет должны быть EXECUTE привилегии , и не должны полагаться на PUBLIC EXECUTE привилегии. 
• DBMS_RANDOM.RANDOM возвращает целые [-2 ^ 31, 2 ^ 31). 
• DBMS_RANDOM.VALUE возвращает чисела из [0,1) с 38 цифр точности. 
DBMS_RANDOM может быть явно инициализирован, но не нужно специально инициализировать каждый раз перед вызовом генератора случайных чисел. Будет автоматически инициализировать с даты, идентификатор пользователя и идентификатор процесса, если явной инициализации не выполняется.

 

Подробнее...

Как убить сессию запросом Oracle 11g Release 11.2

следующий запрос убивает и вешает сессию наглухо

select x.id,
       rtrim(xmlagg(xmlelement("a",x.recno||';')).extract('//a/text()').getStringVal(),';') as recno,
       min(recno)
  from
  (select 1 as id, 101 as recno from dual
  union all
  select 2 as id, 102 as recno from dual
  union all
  select 3 as id, 103 as recno from dual
  union all
  select 3 as id, 123 as recno from dual
  union all
  select 4 as id, 104 as recno from dual
  union all
  select 5 as id, 105 as recno from dual) x
 group by x.id
 order by min(recno);

Задача с валютами

Исходные данные
-- есть таблица в с номером валюты, датой заполнения курса, курсом валюты
-- оператор вводит курс валюты, когда он поменялся , то есть если несколько дней подряд одинаковый курс - то, в таблице будет единственное значение курса на дату изменения
-- необходимо вывести курс валюты на заданную дату , по каждой валюте
-- если на данную дату нет курса тогда выводится курс на последнюю дату, если в заданную дату курс менялся несколько раз , то надо вывести все изменения
-- Подготовим данные для примера
-- создадим таблицу с валютами\

 

Подробнее...