SQL Получить промежуточную оценку в каждой группе

Доброе утро в моем часовом поясе

Моя цель:

TYPE |  CODE | PRICE | QUANTITY
A       10      34       1
A       11      20       2
A       15      17       2
A       Total   71       5
B       13      14       1
B       10      24       2
B      Total    38       3

Я использую Sybase ASE версии 15.5, поэтому нет операторов ROLLUP или CUBE. Является ли курсор единственным способом получить?

Заранее благодарю С наилучшими пожеланиями

Всего 1 ответ


Вы можете использовать такой оператор SQL с union all ( упорядочение важно для вашей цели ):

select q.*
  from
  (
    select type, cast(code as char(5)) as code, price, quantity
      from tab
    union all
    select type, 'Total', sum(price), sum(quantity) 
      from tab
    group by type
  ) q
  order by type, code

Я добавляю демо в SQL Server, но синтаксис работает для обоих.