Aggregation select query in oracle database10.2/linux

Hi friends,
I required to build matrix kind of report which should includes segregated and aggregated values in single query and format can be as follows.. i am trying on scott.emp table
example:
Job/deptno 10 20 30 40 50 total
CLERK sum(Sal) sum(sal) sum(Sal) sum(sal) sum(Sal) sum(all clearks in all dept)
MANAGER sum(Sal) sum(sal) sum(Sal) sum(sal) sum(Sal) sum(all mng all dept)
SALESMAN sum(Sal) sum(sal) sum(Sal) sum(sal) sum(Sal) sum(all salres in all dept)
ANALYST sum(Sal) sum(sal) sum(Sal) sum(sal) sum(Sal) sum(all ana in all dept)
if possible
cout(*) countof all 10, count(20), count(30)... etc..
could you please help me out with single query? please. thanks in advance

Try this:
SELECT     JOB
,     MAX(DECODE(DEPTNO,10,SAL,0))      AS SUM_DEPT_10
,     MAX(DECODE(DEPTNO,20,SAL,0))      AS SUM_DEPT_20
,     MAX(DECODE(DEPTNO,30,SAL,0))      AS SUM_DEPT_30
,     MAX(DECODE(GRP,1,SAL,0))      AS SUM_TOTAL
,     MAX(DECODE(DEPTNO,10,CNT,0))      AS CNT_DEPT_10
,     MAX(DECODE(DEPTNO,20,CNT,0))      AS CNT_DEPT_20
,     MAX(DECODE(DEPTNO,30,CNT,0))      AS CNT_DEPT_30
,     MAX(DECODE(GRP,1,CNT,0))      AS CNT_TOTAL
FROM
(     SELECT     DEPTNO
     ,     JOB
     ,     SUM(SAL)      AS SAL
     ,     COUNT(*)      AS CNT
     ,     GROUPING(DEPTNO) AS GRP
     FROM     SCOTT.EMP
     GROUP BY JOB,ROLLUP(DEPTNO)
GROUP BY JOB

Similar Messages

  • How to get result of select query from  oracle  in VC

    Dear All ,
    I have a application in oracle which insert the data in the oracle database table.
    Now i want to show all the data that has been inserted into the database table in my VC application but i don't know how to handle select query in VC.
    Regards
    Krishan

    Hi Goivndu
    Thanks for your reply .
    I know all those things.
    I have created the system & alias  for my backend oracle system.
    I can also see all the stored procedure that are there in my oracle system.
    I just want to know how to write a select query in a stored procedure .
    you can insert data , Update data through oracle procedure but i don't think there is any way to get the result of select query in stored procedure .
    If you know any way to do that please do let me know .
    Regards
    Krishan

  • NullPointerException on System.arraycopy command while executing select query in Oracle 10

    I'm getting this error below while trying to execute some select query.
        java.lang.NullPointerException at java.lang.System.arrayCopy(Native Method) at
        oracle jdbc.driver.T4CNumberAccessor.saveDataFromOldDefineBuffers(T4CNumberAccessor.java:276) at
        oracle.jdbc.driver.T4CPreparedStatement.saveDefineBuffersIfRequired(T4cPreparedStatement.java:486) at
        oracle.jdbc.driver.OracleStatement.prepareAccessors(OracleStatement.java:919) at
        oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(T4CPreparedStatement:836) at
        oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1124) at
        oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3286) at
        oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3329) at
    I've already downloaded the latest ojdbc5.jar file to access Oracle 10 database.
    This is my java version:
        bash$java -version
        HEAP_DUMP_OPTIONS= -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=../Logs -XX:+PrintClassHistogram
        java version "1.5.0_22"
        Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_22-b03)
        Java HotSpot(TM) Server VM (build 1.5.0_22-b03, mixed mode)
    Any idea of what may cause this problem?

    No one can debug code that they can't see.
    You need to SHOW US (not just tell us):
    1. WHAT you are doing
    2. HOW you are doing it
    3. WHAT result you are getting
    4. WHAT result you expected to get.
    The latest JDBC jar that can access Oracle 10 DBs is the 12.1.0.2 driver and is available here:
    JDBC/UCP Download Page

  • Find Time, when I give a SELECT query in oracle  ... ...

    Dear Friends ,
    Using the below query we got the username , sid with the CURRENT_SQL information .
    SELECT s.sid sid, s.serial# serial_id, s.status session_status, s.username oracle_username, s.osuser os_username, p.spid os_pid, s.machine session_machine, s.program session_program
    , s.client_info , SUBSTR(sa.sql_text, 1, 1024) current_sql FROM v$process p , v$session s , v$sqlarea sa WHERE p.addr = s.paddr AND s.sql_address = sa.address(+)
    AND s.sql_hash_value = sa.hash_value(+) AND s.audsid <> userenv('SESSIONID') AND s.username IS NOT NULL AND s.status = 'ACTIVE' AND s.username not in ('SYS','SYSTEM','DBSNMP','SYSMAN') ORDER BY sid;
    But I need to know in which time with date ,  I execute this SELECT query .
    Here I explain my problem and that is , In my centralized database , we have a lot of clients . so If any client gives a command to show a report , I need to find out in which time he/she executes the report ?
    Waiting for kind reply ... ...

    The issue as you have described just does not make sense unless the recorders ae not ordered by the test number.
    Does the number of records returned match the number in the DB?
    Ben
    PS: No Mike, you are still the DB guy. Relax. 
    Ben Rayner
    I am currently active on.. MainStream Preppers
    Rayner's Ridge is under construction

  • How to LOOP SELECT Query in Oracle?

    Hello
    I have a query which use a variable (:enddate) and returns a set of data. Lets assume it gives sales totals by account for a given month (specified using the variable :enddate). So the query would look something like :
    SELECT ACCOUNT_NO, SUM(SALE_AMT) TOTAL_SALES FROM SCHEMA1.SALES_LINES, :ENDDATE as END_DATE WHERE SALE_DATE BETWEEN addmonths(:ENDDATE,-1) and :ENDDATE
    GROUP BY ACCOUNT_NO
    Now, currently, I have to run this query each time I need results for a particular date, and thats OK but the problem arises when I need to run this query for an entire year. Then I have to run the query 12 times, passing the date variable each time and re-running the query.
    What I would like to do, is to create a loop which covers a time period entered by the user (e.g. user enters 12 months as the total time and 1 month as the period, and the query automatically runs for the previous 12 months, passing :enddate 1 month at a time and then presents the combined results) OR takes a bunch of dates entered in an array, (e.g. :enddate in (JAN-31-2009, Feb-28-2009, MAR-31-2009, APR-30,2009 etc) and runs the query for each of them and presents the results together in one set.
    How can I do this using a simple PLSQL loop? I would like to avoid creating a procedure if possible. Sample code will be much appreciated.
    BTW, I am using Oracle XE 10g.
    Thanks

    Hi,
    It will be more efficient to get all the results at once, rather than running 12 separate queries.
    You can do that without loops or PL/SQL, something like this:
    SELECT    account_no
    ,       TRUNC (sale_date, 'MONTH')     AS mnth
    ,        SUM (sale_amt)          AS total_sales
    FROM        schema1.sales_lines
    WHERE       sale_date     >  ADD_MONTHS (:enddate, -12)
    AND       sale_date     <= :enddate
    GROUP BY  account_no
    ,            TRUNC (sale_date, 'MONTH')
    ;Of course, you can do a query like this within PL/SQL if you need to.
    If you'd care to post some sample data (CREATE TABLE and INSERT statements) and the results you want from that data, then I could test it.
    Simplify as much as possible. For example, instead of 12 sepaarte months, you can post just 2 or 3. Adapting the solution for 12 months should be easy.
    In pure SQL, bind varibales can't be DATEs, but you could define the bind variable as a string and use TO_DATE to convert it to a DATE, OR use a substitution variable instead of a bind variable.
    The solution above works in all versions Oracle. The way you're using :enddate in the FROM clause, and a function called addmonths (rather than ADD_MONTHS) makes me wonder if you're using Oracle at all.

  • Select query differences between oracle 9 and oracle 8.

    Hi,
    I have a problem using the select query between oracle 7 and oracle 9i I don't have the same result :
    ex:
    With oracle7
    SQL> select 'champ1','champ2' from DUAL;
    'CHAMP 'CHAMP
    champ1 champ2
    With Oracle 9
    SQL> select 'champ1','champ2' from DUAL;
    'CHAMP1' 'CHAMP2'
    champ1 champ2
    So Can someone tell me how to solve this problem ? Is there a parameter in oracle 9 to set?
    Thanx.

    Whenever you are posting anything over internet forums like this - you should be very careful about not just posting the details which requires to solve the problem - also should be sensible about your question.
    This is not at all desired when you are posting such question. It may be because - you may not well aware of the fact.
    My suggestion is -> First Go through the basics Of SQL in general.
    Then go for any specific product like Oracle/ SQL Server/ Sybase etc.
    And, finally learn the advanced commands of that DB.
    You asked it - may be you thought the difference in output in terms of lines. But, that is not your actual output. That is the graphical display part only.
    Anyway,
    You can get the quite familier output by first type the following command ->
    set lin 310Regards.
    Satyaki De.

  • Select Query Results to a .csv file????

    Hello All,
    I have a question in Oracle, if anyone knows how to do this. Please help me.
    How can I get the results of select query in Oracle loaded into a Excel file (.csv) file.
    Thanks in Advance,
    Sarada.

    Hi Sarada,
    as a csv is nothing more than a list of Comma Separated Values your best shot is to simply read do this with your values. read each value in an iteration add them to a string / stringbuffer and add a "," between them. When you read then next line in the ResultSet you just add a carriage return to the end. Depending on what format you want your csv list in.
    After you written all of this into a String you write this out to a file (unless you want to do it slower and write them line by line whenever you read them).
    Hope this helps,
    Kalle

  • Select query is working on oracle 10.1.0 but its not working in 10.2.0

    select query is working and retrieving some data from oracle database server 10.1.0.2.0, but same query is not working in 10.2.0.1.0 database server, its throws(ORA-00942: table or view does not exist)
    But schema related tables and relevant details are same in 10.2.0.1.0 database server, so don't think that table is missing on that schema.
    Note: Query length is upto 480 line
    I have validate all the things, everything is fine, i don't why that query is not executing in different version.
    I am in helpless in this situation?, anybody faced this issue?
    Thanks in advance

    Validated means all the tables and and columns are verified, i just running in sqlprompt,
    Say for example:
    sql> select * from table1;
    One thing i observed while executing the query its showed error in one location of select sql. i mean particular word in select sql.
    After that i combined some three lines of huge select sql into single then i am getting error in different location i mean different word...
    My question is how same query executing in Oracle 10g Release 1, same dump (its exported from Release1) imported into oracle 10g release 2 is not executing. its shows Table or view doesn't exit.

  • In oracle rac, If user query a select query and in processing data is fetched but in the duration of fetching the particular node is evicted then how failover to another node internally?

    In oracle rac, If user query a select query and in processing data is fetched but in the duration of fetching the particular node is evicted then how failover to another node internally?

    The query is re-issued as a flashback query and the client process can continue to fetch from the cursor. This is described in the Net Services Administrators Guide, the section on Transparent Application Failover.

  • Check Index used in an oracle select query

    Hi Friends,
    I have partitioned an oracle table and created Local Index for the Partitioned table .
    Now i want to make sure that the Local index is being used when i perform select query on the Table partition.
    How do i confirm that ?
    can i check the explain plan generted for the select query to confirm local index is being used ?
    Please let me know.
    Regards,
    DB

    Now i want to make sure that the Local index is being used when i perform select query on the Table partition.Why? Have you proven that using this local index is the "best" plan?
    How do i confirm that ?
    can i check the explain plan generted for the select query to confirm local index is being used ?When I asked Google "how to read an oracle explain plan," I found lots of information - what did you find?

  • Sub-Select SQL query in Oracle BI Answers

    Hi
    What's the proper usage of Sub-Select SQL query in Oracle BI Answers Version Oracle Business Intelligence 10.1.3.2.1?
    I get [SQL_STATE: HY000] [nQSError: 10058] A general error has occured when trying to Sub Select query like:
    itemno = (SELECT MIN(orders.itemno) FROM mydatabase where rownum < 2 order by orders.itemno)

    Maybe the best is to create a new physical and logical object for your sub-select and join this with your current objects.

  • Oracle "IO Error" during SELECT query under heavy load

    We're experiencing a strange connection break during SELECT queries under heavy load.
    Platform Details: Solaris, Oracle 11G, JDK 1.6, 
    Application: Spring + Hibernate (C3p0 connection pooling)
    Exact error messages from a lengthy stack trace are mentioned below:
        2013/06/05 18:49:02 | Caused by: org.springframework.dao.DataAccessResourceFailureException: Hibernate operation: could not execute query; SQL [SQL Ommitted]; IO Error: No such file or directory;      nested exception is java.sql.SQLException: IO Error: No such file or directory 
        2013/06/05 18:49:02 | Caused by: java.sql.SQLException: IO Error: No such file or directory
        2013/06/05 18:49:02 |    at oracle.jdbc.driver.T4CPreparedStatement.fetch(T4CPreparedStatement.java:1091)
        2013/06/05 18:49:02 |    at oracle.jdbc.driver.OracleResultSetImpl.close_or_fetch_from_next(OracleResultSetImpl.java:369)
        2013/06/05 18:49:02 |    at oracle.jdbc.driver.OracleResultSetImpl.next(OracleResultSetImpl.java:273)
        2013/06/05 18:49:02 |    at com.mchange.v2.c3p0.impl.NewProxyResultSet.next(NewProxyResultSet.java:2706)
        2013/06/05 18:49:02 |    at org.hibernate.loader.Loader.doQuery(Loader.java:697)
        2013/06/05 18:49:02 | Caused by: java.net.SocketException: No such file or directory
        2013/06/05 18:49:02 |    at java.net.SocketInputStream.socketRead0(Native Method)
        2013/06/05 18:49:02 |    at java.net.SocketInputStream.read(SocketInputStream.java:129)
        2013/06/05 18:49:02 |    at oracle.net.ns.Packet.receive(Packet.java:282)
    We've started looking at TCP connection settings (Max. TCP connections allowed, Max File descriptors allowed for socket connections at system level). Anything we're missing?
    Why "IO Error: No such file or directory"? Any clue?

    user2951561 wrote:
    That's a better answer indeed.
    I can refine my question if it does not provide you enough information.
    The stack trace i displayed here states that oracle jdbc driver has found the connection to be closed, interrupted etc.
    Application behaves perfectly under normal load but blows up as soon as we reach 3000 concurrent sessions. No firewall is breaking connections, the select query that we observe this behavior for is part of a larger workflow that write data, update some, delete some as well in different tables. Then we see above stack trace for the select query.
    I am trying to explore possible options to investigate. One i mentioned is related to Solaris file descriptors. Could it be database it self?
    Any possible course of action for investigation? Help is much appreciated.
    Oracle errors get reported with error code & message; like ORA-01555 Snapshot Too Old; which is not present in your post.
    You indicated that Connection Pooling is used.
    Is there some (artificial) limit within the application that falls off the cliff at 3000 sessions?
    Oracle does not know or care about the "flavor" of client connection. It treats jdbc the same as OCI or ODBC connections.
    Is OS limited to fixed number of open file handles?

  • Oracle 11g :SELECT query blocked..??

    Hi Experts,
    could you please explain why the below SQL query is blocked?
    SELECT 1 FROM DUAL is blocking the SQL statement on GTTAPPUSR@gttccuatcriba04 ( SID=469 ) blocked SQL -> DELETE FROM GTTDB.PURCHASE_ENTRY_ID=:1
    SELECT 1 FROM DUAL is blocking the SQL statement on GTTAPPUSR@gttccuatcriba04 ( SID=367 ) blocked SQL -> DELETE FROM GTTDB.PURCHASE_ENTRY_ID=:1
    I am scratching my head without any solution when I had a look at the db today. Thanks in advance for your help.
    Regards,
    Boris
    Edited by: user12075620 on Dec 4, 2012 8:58 AM

    The SELECT statement is not blocking the UPDATE. As I said in the previous reply, the string that this query produces does not match the logic.
    This query is (at least on the surface) correctly identifying that session 1 is blocking session 2. Session 1 holds some lock that session 2 is waiting on. So far, so good. Since session 2 is waiting on the lock, we can easily enough see what session 2 is running (the UPDATE statement). But since session 1 is not blocked, it is potentially off running a ton of other SQL statements (or no SQL statement at all). The query is looking to see what session 1 is running currently. It has no way of determining what session 1 ran at some point in the past to acquire the lock in the first place.
    Going back to my KING example,
    At noon, session 1 runs
    UPDATE emp
       SET sal = sal * 2
    WHERE ename = 'KING'Session 1 now has a lock on the KING row in the EMP table. But session 1 neither commits nor rolls back, it is still in a transaction. Session 1 might not have any more activity for a long time-- the user might go off to lunch, for example (obviously, applications should not be designed to allow users to maintain open transactions indefinitely, but not all applications are designed correctly). Or it might start running other queries. Let's say that session 1 now runs a query that is going to go for an hour
    SELECT *
      FROM giant_view_with_lots_of_computationsNow, at 12:45, session 2 comes in and runs
    UPDATE emp
       SET bonus = 100
    WHERE ename = 'KING'Session 2 is blocked. Session 2 is running the UPDATE statement. Session 1 still holds the lock but it is running some completely unrelated SQL statement.
    If we run the query you posted, the query will correctly report that session 1 is running the query against the GIANT_VIEW_WITH_LOTS_OF_COMPUTATIONS but incorrectly imply that this SELECT query is the source of the lock. It is not. It simply happens to be the query that the session that does hold the lock happens to be executing at the current moment (why the application seems to be running a lot of queries that select a constant from dual is a separate question).
    Justin

  • Oracle SQL Select query takes long time than expected.

    Hi,
    I am facing a problem in SQL select query statement. There is a long time taken in select query from the Database.
    The query is as follows.
    select /*+rule */ f1.id,f1.fdn,p1.attr_name,p1.attr_value from fdnmappingtable f1,parametertable p1 where p1.id = f1.id and ((f1.object_type ='ne_sub_type.780' )) and ( (f1.id in(select id from fdnmappingtable where fdn like '0=#1#/14=#S0058-3#/17=#S0058-3#/18=#1#/780=#5#%')))order by f1.id asc
    This query is taking more than 4 seconds to get the results in a system where the DB is running for more than 1 month.
    The same query is taking very few milliseconds (50-100ms) in a system where the DB is freshly installed and the data in the tables are same in both the systems.
    Kindly advice what is going wrong??
    Regards,
    Purushotham

    SQL> @/alcatel/omc1/data/query.sql
    2 ;
    9 rows selected.
    Execution Plan
    Plan hash value: 3745571015
    | Id | Operation | Name |
    | 0 | SELECT STATEMENT | |
    | 1 | SORT ORDER BY | |
    | 2 | NESTED LOOPS | |
    | 3 | NESTED LOOPS | |
    | 4 | TABLE ACCESS FULL | PARAMETERTABLE |
    |* 5 | TABLE ACCESS BY INDEX ROWID| FDNMAPPINGTABLE |
    |* 6 | INDEX UNIQUE SCAN | PRIMARY_KY_FDNMAPPINGTABLE |
    |* 7 | TABLE ACCESS BY INDEX ROWID | FDNMAPPINGTABLE |
    |* 8 | INDEX UNIQUE SCAN | PRIMARY_KY_FDNMAPPINGTABLE |
    Predicate Information (identified by operation id):
    5 - filter("F1"."OBJECT_TYPE"='ne_sub_type.780')
    6 - access("P1"."ID"="F1"."ID")
    7 - filter("FDN" LIKE '0=#1#/14=#S0058-3#/17=#S0058-3#/18=#1#/780=#5#
    8 - access("F1"."ID"="ID")
    Note
    - rule based optimizer used (consider using cbo)
    Statistics
    0 recursive calls
    0 db block gets
    0 consistent gets
    0 physical reads
    0 redo size
    0 bytes sent via SQL*Net to client
    0 bytes received via SQL*Net from client
    0 SQL*Net roundtrips to/from client
    0 sorts (memory)
    0 sorts (disk)
    9 rows processed
    SQL>

  • Odbc driver error while connecting with Oracle BI in Linux

    I have Oracle BI Server, Presentation Service and Oracle 11g Client installed in RHEL 5. Oracle BI client is installed in Windows so that I can use Admin tool.
    I have created a repository in Windows for sh schema(by creating ODBC). After that I transferred this repository to the ..server/repository in the linux server.
    I have installed Oracle ODBC Driver from EASYSOFT and added one odbc data source for sh schema in the ../setup/odbc.ini.
    My ODBC setting is as follows.
    [ODBC Data Sources]
    sh=Oracle in OraDb11g_home1
    [sh]
    Driver=/usr/local/easysoft/oracle/libesoracle.so
    Database=//ipaddress_of_ORACLE_SERVER:port/database_service_name
    UID=sh
    PWD=sh
    When I am trying to query through Oracle Answers I am getting the following error.
    Odbc driver returned an error (SQLExecDirectW).
    Error Codes: OPR4ONWY:U9IM8TAC:OI2DL65P
    State: HY000. Code: 10058. [NQODBC] [SQL_STATE: HY000] [nQSError: 10058] A general error has occurred. [nQSError: 16023] The ODBC function has returned an error. The database may not be available, or the network may be down. (HY000)
    SQL Issued: SELECT Customers."Cust First Name" saw_0 FROM SH ORDER BY saw_0
    I have enabled tracing, but I am not getting any clue from trace output.
    Can anybody please help.
    If it is because of wrong driver, can anybody suggest a proper ODBC Driver for Oracle and how to configure it. If the driver is OK and configuration is wrong, can anybody tell me how to create system dsn in linux?
    Thanking you in advance.

    don't use ODBC for Oracle, use OCI
    search on the forum, there's plenty of information about it.

Maybe you are looking for

  • How can i compare two databases and their tables

    i have a text.txt file then i will insert it into db_header and db_details db_header has tbl_pcountheader with fld_Rack_No(char) PK and fld_DateAdded(date) PK db_details has tbl_pcountdetails with fld_Rack_No(char) PK, fld_Barcode(char) PK and fld_Qu

  • How to embed icon in dmg of MAC OS in air application?

    hi How to embed icon in dmg of MAC OS in air application? while in windows application it working file if  i set <icon> tag in windows application's .xml file..... Please reply

  • How to apply metrics for different platform

    Hi, If a metric has different code for different platform, or the metric only runs on some specific type of system, how can we apply it to a group of hosts? For example, I have a metric that checks only Sun T3 types of systems. I can create a group o

  • Large file copy fails through 4240 sensor

    Customer attempts to copy a large file from a server in an IPS protected vlan to a host in an IPS un-protected vlan and the copy fails if file is greater than about 2Gbytes in size. If the server is moved to the un-protected vlan the copy succeeds. T

  • Vendor XML

    Hi, We are building an interface for vendor and material master replication, in this process we want to test a sample xml file. Can we import a vendor.xml file in to E-Sourcing? If yes, we are getting some errors, and trace.txt, does not show any inf