Skip to main content

Posts

SQL - Binary Search Tree

Problem Statement You are given a table,   BST , containing two columns:   N  and   P,  where   N   represents the value of a node in   BST , and   P   is the parent of   N . Write a query to find the node type of   BST   ordered by the value of the node. Output one of the following for each node: ·          Root : If node is root node. ·          Leaf : If node is leaf node. ·          Inner : If node is neither root nor leaf node. Sample Input                 N          P 1 2 3 2 6 8 9 8 2 5 8 5 5         null Sample Output 1 Leaf 2 Inner 3 Leaf 5 Root 6 Leaf 8 Inner 9 Leaf Explanation The   BST ...

Asian Population

Problem Statement Given two tables,  City  and  Country  whose descriptions are given below. Find the sum of population of all the Cities that lies in  "Asia"  continent. City +-------------+----------+ | Field | Type | +-------------+----------+ | ID | int(11) | | Name | char(35) | | CountryCode | char(3) | | District | char(20) | | Population | int(11) | +-------------+----------+ Country +----------------+-------------+ | Field | Type | +----------------+-------------+ | Code | char(3) | | Name | char(52) | | Continent | char(50) | | Region | char(26) | | SurfaceArea | float(10,2) | | IndepYear | smallint(6) | | Population | int(11) | | LifeExpectancy | float(3,1) | | GNP | float(10,2) | | GNPOld | float(10,2) | | LocalName | char(45) | | GovernmentForm | char(45) | | HeadOfState | char(60) | | C...

Minimum / Maximum from the given list

File: Execute.java -------------------------------------------------------------------------------------- package org.developersbrain.Solutions; public class Execute { public static int min(int[] arrList){ int minV1=0; int minV2=0; int aLen=arrList.length; minV1=arrList[0]; minV2=arrList[aLen-1]; for(int i=0,j=aLen-1;i<=aLen/2;i++,j--){ if(minV1 > arrList[i]){ minV1=arrList[i]; } if(minV2 > arrList[j]){ minV2=arrList[j]; } } if(minV2<=minV1){ return minV2; }else{ return minV1; } } public static int max(int[] arrList){ int minV1=0; int minV2=0; int aLen=arrList.length; minV1=arrList[0]; minV2=arrList[aLen-1]; for(int i=0,j=aLen-1;i<=aLen/2;i++,j--){ if(minV1 < arrList[i]){ minV1=arrList[i]; } if(minV2 < arrList[j]){ minV2=arrList[j]; } } if(minV2>=minV1){ return minV2; }else{ return minV1; } } ...

Simple SQLPLUS formatting

> SQL Prompt>SET SQLPROMPT "My SQL Prompt>" > My SQL Prompt>SET COLSEP "|" > My SQL Prompt>SET UNDERLINE "-" > My SQL Prompt>SET LINESIZE 2000 > My SQL Prompt>SET PAGESIZE 1000 > My SQL Prompt>Select tbl2.* > 2 From (Select * > 3 From (Select 1 a, > 4 2 b, > 5 3 c, > 6 4 d, > 7 5 e > 8 From DUAL) tbl1) tbl2 > 9 Where a=b-1; > > A| B| C| D| E > ---------|---------|---------|---------|--------- > 1| 2| 3| 4| 5 > > 1 row selected. >

DUAL Table

The DUAL table was created by  Charles Weiss  of  Oracle Corporation  to provide a table for joining in internal  views : I created the DUAL table as an underlying object in the Oracle Data Dictionary. It was never meant to be seen itself, but instead used inside a view that was expected to be queried. The idea was that you could do a JOIN to the DUAL table and create two rows in the result for every one row in your table. Then, by using GROUP BY, the resulting join could be summarized to show the amount of storage for the DATA extent and for the INDEX extent(s). The name, DUAL, apt for the process of creating a pair of rows from just one. [1] The original DUAL table had two rows in it (hence its name), but subsequently it only had one row. Optimization Beginning with 10g Release 1 Oracle Database have been OPTIMIZED [2]  and the database no longer performs physical or logical IO on the DUAL table even though the DUAL table still actually exists...

10 Million records manipulation in Oracle DB

Say you are given a task to manipulate a set of 10 million records from a couple of tables. What would you do? Sit and think???!!!! See if the following helps you.. Replicate the tables data into temporary tables Create indexes on the columns you want to manipulate the data Write your query.. Dont ask me what language you are talking!!!! Look at the examples Select count(1) from hugeTable1;--7999900 records Select count(1) from hugeTable2; --9893990 Create table tmp1 as Select * from hugeTable1 where 1=2; insert /*+append*/ into tmp1 select * from hugeTable1; Create table tmp2 as Select * from hugeTable2 Where 1=2; insert /*+append*/ into tmp2 select * from hugeTable2; create index indTmp1 on tmp1(column1,column2); create index indTmp2 on tmp2(column1,column2); Select * from tmp1,tmp2 where tmp1.column1=tmp2.column1 and           tmp1.column2=tmp2.column2;     Should you face any issues, please write to me ( s...