
I am limited to using SQL, and I'm running on Oracle 10g R2. I was thinking something on the lines of a 2 part query, the first part would fetch the sum(commission) into a package variable/type and the second part would refer to this pre-calculated value, but I'm not sure how I can accomplish this. Is there a way of having the Sum(Commission) not calculate for every row being fetched ? The problem is that Sum(commission) gets calculated for each and every row, and given that this query would be run on a Data Warehouse, the data set would be rather large ( currently, it's just under 2000 records) and quite honestly, a bad approach (IMO). I have another function returning the percentage as (Commission/Sum(Commission))*100. I have a function returning the commission for each agent. So, my expected data would be Agent | Commission | % Commission So, for Agent Smith, the Percentage would be calculated as (Agent Smith's commission / Sum(commission)*100 I need to calculate the percentage of the total commission, each agent is responsible for. This is currently (simplified view of the) data I'm working with Agent | Commission You want to find out totals, subtotals and a grand total in Oracle.Apologies for the bad title, I wasn't sure what would be a good title for this.

Oracle ROLLUP function performs grouping at multiple levels, using a right to left method of rolling up through intermediate levels to any grand total. To demonstrate the ROLLUP function we will create a table to hold tennis player along with the ATP tour titles and Grandslam titles acheived by the player. INSERT INTO atp_titles VALUES('Pete Sampras','Grandslams',14) INSERT INTO atp_titles VALUES('Novak Djokovic','Grandslams',17) INSERT INTO atp_titles VALUES('Rafael Nadal','Grandslams',20) INSERT INTO atp_titles VALUES('Roger Federer','Grandslams',20) INSERT INTO atp_titles VALUES('Andy Roddick','ATP Tour Titles',32) Example - insert grandslam titles won by the player INSERT INTO atp_titles VALUES('Thomas Muster','ATP Tour Titles',39) INSERT INTO atp_titles VALUES('Andy Murray','ATP Tour Titles',46) INSERT INTO atp_titles VALUES('Andre Agassi','ATP Tour Titles',52) INSERT INTO atp_titles VALUES('Pete Sampras','ATP Tour Titles',64) INSERT INTO atp_titles VALUES('Novak Djokovic','ATP Tour Titles',81) INSERT INTO atp_titles VALUES('Rafael Nadal','ATP Tour Titles',86) INSERT INTO atp_titles VALUES('Roger Federer','ATP Tour Titles',103) Titles NUMBER NOT NULL) Example - insert ATP tour titles won by the player We will begin by create the necessary data for this requirement. INSERT INTO atp_titles VALUES('Andy Roddick','Grandslams',0) INSERT INTO atp_titles VALUES('Thomas Muster','Grandslams',1) INSERT INTO atp_titles VALUES('Andy Murray','Grandslams',3) INSERT INTO atp_titles VALUES('Andre Agassi','Grandslams',8) I want a query that will count the row wise and column wise total,i have found the way to calculate column wise count but not getting row wise count. SELECT * FROM atp_titles ORDER BY 1 Output Andre Agassi ATP Tour Titles 52 Now we will look at few records inserted into atp_titles table. Oracle ROLLUP expression produces group subtotals from right to left along with grand total. SELECT player,title_type, SUM(titles) AS total_titles With above data, let’s say we wanted to identify the total titles (i.e. ATP tour titles + Grandslam Titles) acheived by player “Roger Federer”. ROLLUP produces n+1 levels of subtotals for “n” number of columns listed in the ROLLUP. In above example after performing normal grouping by player and title_type, the ROLLUP function rolls up all title_type values so that we see sum for the Grandslams level for the player “Roger Federer”.

You can see the rolled up rows in bold in the output. Now we will apply the ROLLUP function for all the players in the table as below: SQL: Example Upgrading to Oracle Database 19c (Non-CDB) - 11g to 19c. This article provides an overview of upgrading an existing non-CDB database to Oracle 19c. Upgrades can be very complicated, so you must always read the upgrade manual, and test thoroughly before considering an upgrade of a production environment. SELECT player, title_type, SUM(titles) As total This article also includes the conversion.

Rowwise grandtotal in oracle11g upgrade#.
