0% found this document useful (0 votes)
3 views

DBMS Interview q

The document provides a comprehensive overview of Database Management Systems (DBMS), including definitions, applications, components, and various database languages. It covers SQL query structures, data manipulation, constraints, keys, and different types of joins and operations. Additionally, it explains advanced topics such as indexing, triggers, stored procedures, and the Entity-Relationship model, along with practical SQL query examples for data retrieval and manipulation.
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views

DBMS Interview q

The document provides a comprehensive overview of Database Management Systems (DBMS), including definitions, applications, components, and various database languages. It covers SQL query structures, data manipulation, constraints, keys, and different types of joins and operations. Additionally, it explains advanced topics such as indexing, triggers, stored procedures, and the Entity-Relationship model, along with practical SQL query examples for data retrieval and manipulation.
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 16

1) Definition of DBMS

2) Database systems applications


3) Components of DBMS
4) Database Languages(4)
5) Keys
6) Constrains
7) Basic Structure of SQL Queries
8) Filtering & Sorting Data(Where & Order by & Group by & Having, Like
Between, In, Not in, And, Null, Not Null)
9) Aggregating Data(Count, Max , Min , Avg , Sum
10) Queries types(Inner q and Outer q) and Sub Queries
11) Set Operations(Union, Union All, Intersect, Except or Minus)
12) Joins types
13) Recursive function and Non_recursive function
14) Views types(Simple and Complex)
15) Indexing types (Clustered and Non)
16) Triggers types(Before & after & Instead of)
17) Stored Procedures
18) Entity-Relationship Model
19) Normal Forms
20) ACID

Definition of DBMS
Database Management Systems (DBMS) are software systems used to store, retrieve, and run queries on
data. A DBMS serves as an interface between an end-user and a database, allowing users to create, read,
update, and delete data in the database
DBMS applications
1) Healthcare Information Systems 2) E-commerce Applications 3) Telecommunications
Systems
4) Educational Institutions 5) Railway Reservation System 6) Banking 7) Social Media Sites

Components of DBMS
Hardware Software Data User Procedures
QUESTIONS
DDL DML DCL TCL
CREATE INSERT GRANT COMMIT
ALTER DELETE REVOKE ROLLBACK
DROP UPDATE SAVEPOINT
TRUNCATE SELECT (DQL)
RENAME
How to DISPLAY ALL TABLES IN DATABASE
SELECT * FROM SYS.TABLES
OR
SELECT * FROM SYSOBJECTS WHERE XTYPE=’U’

TABLE: IT REFERS TO A COLLECTION OF DATA IN AN ORGANISED MANNER IN FORM OF


ROWS N COLUMNS

FIELD: IT REFERS TO THE NUMBER OF COLUMNS IN A TABLE

CELL: ONE VALUES IN A TABLE

CREATE TABLE DEV (DID INT, DNAME VARCHAR (20), GENDER BOOLEN, ADDRESS
VARCHAR (20), PH INT)
--------> ALTER TABLE DEV ADD SAL INT ADDING COLUMN
--------> ALTER TABLE DEV DROP COLUMN GENDER, PH DROPING
COLUMNS
--------> ALTER TABLE DEV ALTER COLUMN DID VARCHAR (20) ALTERING DATA
TYPE
--------> ALTER TABLE DEV RENAME COLUMN DID TO DEPT_ID
OR SP_RENAME 'DEV.SAL','SALARY'
--------> DROP TABLE DEV -------->TRUNCATE TABLE T_NAME

---------> GRANT AND REVOKE


CREATE LOGIN LOG_KK WITH PASSWORD='143' #CREATE THE 1ST LOGIN ACCOUNT

CREATE USER ANSHI FOR LOGIN LOG_KK #CREATE USER IN THAT ACCOUNT

GRANT SELECT, INSERT, UPDATE, DELETE ON EMPLOYEE TO ANSHI

REVOKE SELECT ON EMPLOYEE FROM ANSHI

HOW TO GET BACK THE DELETED VALUES


BEGIN TRAN
INSERT INTO EMPLOYEE VALUES (110,'GANDAHM', 34234, 22)
SELECT * FROM EMPLOYEE #6 RECORDS
ROLLBACK TRAN
SELECT * FROM EMPLOYEE #5 RECORDS
RollBACK WORKS IN DELETE NOT IN TRUNCATE AND DROP

COMMMIT AND SAVEPOINT


AFTER INSERT RECORDS IF U USE COMMIT IT SAVE PERMANENTLY
AFTER IF U USE UPDATE IT UPDATE RECORD BUT IF U USE ROLLBACK WHICH ONE
SHOW MEANS PREVIOUS DATA BCZ ITS STORE THE PERMANENT DATA

PRIMARY KEY AND FOREIGN KEY


CREATE TABLE DEPT (DID INT NOT NULL PRIMARY KEY,
DNAME VARCHAR (20),
KID INT,
FOREIGN KEY (KID) REFERENCES KIRAN (KID))

EID E_NAME PAN_NO AADHAR SSC PASSPORT DID


PK SK CK CK CK CK FK
1) PK (Not allow Duplicates and it maintain Unique Values)
2) SK (COMBINED THE UNNIQ AND NON_UNIQUE COLUMN GET THE UNIQ VALUES)
3) CK (WHICH COLUMN HAVE THE QUALITIES OF PRIMARY KEY THOSE COLUMN
CALLED)
4) FK (REFERENCES KEY)
5) AK (ONE OF THE CANDIDATE KEY)
6) COMPOSITE KEY

WHAT IS THE DIFF BETWEEN DELETE TRUNCATE AND DROP


1) DELETE IS SLOWER THAN TRUNCATE AND BY USE ROLLBACK WE WILL GET IT BACK
AND DELETE 1 OR MORE AT A TIME
2) TRUNCATE IS FASTER THEN DELETE IT DELETES ALL RECORDS AND WE CONT
ROLLBACK DELETED RECORDS PERMINENTLY AND SHOW ONLY COLUMNS
3) DROP REMOVE THE ENTAIRE TABLE IN DB CONT ROLLBACK

HOW TO CREATING NEW TABLE BY USING OLD TABLE WITH DATA


SELECT * INTO NEWTABLE_NAME FROM OLDTABLE_NAME
HOW TO CREATING NEW TABLE BASED ON OLD TABLE (ONLY STRUCTURE NOT
DATA)
SELECT * INTO EMPLOYEE2 FROM EMPLOYEE WHERE 1=0
CREATE TABLE EMPLOYEE2 AS SELECT * FROM EMPLOYEE WHERE 1=0

HOW TO COPY DATA FROM 1 TABLE TO ANOTHER ONE


INSERT INTO TABLE2 SELECT * FROM TABLE1 WHERE CONDITION

HOW TO ADDING FOREIGN KEY TO EXESTING TABLE


ALTER TABLE DEV ADD CONSTRAINT FREIGNKEY FOREIGN KEY (KID) REFERENCES
T_NAME (ID)
ALTER TABLE DEV ADD CONSTRAINT PK_Pe PRIMARY KEY (PID)
---------------PID COLUMN SHOULD HAVE NOT NULL CONSTRAINT (Not Duplicate)

HOW TO ADD DEFAULT VALUE BY USING ALTER


ALTER TABLE DEV ADD CLG_NAME VARCHAR (10) DEFAULT ‘MITS’

HOW TO DROP KEYS (CONSTRAINT) IN EXESTING TABLE


ALTER TABLE PK DROP CONSTRAINT PK_Person

HOW TO COUNT THE DEPT WISE RECORDS WITH MAX TO MIN VALUE
GROUP FUNCTIO WORKS ON THE SET OF ROWS AND RETURN ONE RESULT PER GROUP
SELECT COUNT (DID), Country
FROM DEV
GROUP BY Country;

WRITE THE QUERY TO FIND THE HIGHEST SAL WITH DETAILS


SELECT * FROM
SMP
WHERE SAL IN (SELECT MAX (SAL) FROM SMP) WE CAN USE = INSTEAD OF IN

WHAT IS THE DIFF BETWEEN HAVING AND WHERE CLAUSE


HAVING CAN BE USED ONLY WITH SELECT STATEMENT.IT IS USUALLY USED IN GROUP
BY CLAUSE & WHERE CLAUSE IS APPLIED TO EACH ROW BEFORE THEY ARE A PART OF
THE GROUPY FUNCTION
HOW CAN U SELECT UNIQUE RECORDS IN A TABLE
SELECT DISTINCT EID OR NAME FROM TABLE

HOW TO FIND THE DUPLICATES RECORDS


SELECT DID, COUNT(*) AS REPEATING
FROM DEV
GROUP BY DID
HAVING COUNT(*) > 1

WRITE THE QUERY TO RMOVE DUPLICATE RECORDS


DELETE FROM EMP WHERE EID IN (SELECT DID, COUNT (DID)
FROM DEV
GROUP BY DID
HAVING COUNT (DID) > 1 )

OR

WITH CTE AS (
SELECT
DID,
DNAME,
ROW_NUMBER() OVER (PARTITION BY DID ORDER BY DID) AS RowNum
FROM DUPLI
)
DELETE FROM CTE
WHERE RowNum > 1;

WHAT IS THE FULL FORM OF CTE MEANS COMMON TABLE EXPRESSION

------> WHAT IS THE USE OF DATA TYPE NUMBER (6,2)


1234.56 (Total of 6 digits with 2 decimal places) Oracle databases

--------> HOW TO CHANGE THE TABLE NAME OR COLUMN NAME


SP_RENAME OLDNAME,NEWNAME (FOR TABLE NAME)
SP_RENAME 'TABLENAME.COLUMNNAME','NEW COLUMNNAME'

-------> DIFF BETWEEN GROUP BY AND ORDER BY


Group by statement is used to group Order by statement sort the result-set either
the rows that have the same value. in ascending or in descending order.

In select statement, it is always used While in select statement, it is always used


before the order by keyword. after the group by keyword.

--------> WHAT IS THE USE OF HAVING


The HAVING clause was added to SQL because the WHERE keyword cannot be used with aggregate
functions.

SELECT COUNT (DID), D_NAME


FROM Customers
GROUP BY D_NAME
HAVING COUNT (DID) > 5;

WRITE THE QUERY FIND THE 2ND HIGHEST SAL


SELECT MAX(SAL) FROM EMP WHERE SAL <(SELECT MAX(SAL) FROM EMP)

4th HIGHEST SAL


SELECT * FROM EMP ORDER BY SAL DESC
SELECT TOP 1 SAL FROM (SELECT TOP 4 SAL FROM SMP ORDER BY SAL DESC) AS RESULT
ORDER BY SAL

FIND THE HIGHEST SAL WITH DENSE_RANK


SELECT * FROM (
SELECT *, DENSE_RANK ()
Over (ORDER BY Sal DESC) AS ranking FROM SMP) AS k
WHERE ranking=4;
WITH ROW_NUMBER
PUT THE ROW_NUMBER IN THE PLACE OF DENSE_RANK ABOVE QUERY
HOW TO SHOWALL SAL EXCEPT HIGHEST SAL
SELECT * FROM
SMP
WHERE SAL NOT IN (SELECT MAX (SAL) FROM SMP)

HOW TO DISPLAY THE LOWEST SAL’S


SELECT TOP 3 SAL FROM SMP ORDER BY SAL DESC

HOW TO GET MAX MIN AVG SAL IN SINGLE QUERY


SELECT MAX(SAL),MIN(SAL),AVG(SAL) FROM EMP

DISPLAY THE AVG SAL OF EACH DEPT AND SUM OF SAL FOR EACH DEPT
SELECT AVG (SAL), SUM (SAL) FROM EMPLOYEE GROUP BY DEPT_ID

FIND THE SALARY RANGE 70K TO 90K


SELECT * FROM EMP WHERE SAL BETWEEN 70K AND 90K

DISPLAY THE DETAILS OF WHO’S WORKS IN HYD AND GET SAL 90K
SELECT * FROM EMP WHERE CITY=’HYD’ AND SAL=90K

SHOW THE MAX SAL EMPLOYEE DETAILS


SELECT * FROM EMPLOYEE WHERE SAL= (SELECT MAX(SAL) FROM EMPLOYEE)

FIND OUT WHICH DEPT IS PAYING MAXIMUM SAL


SELECT DEPT_NAME FROM DEPT WHERE DEPT_ID=(SELECT DEPT_ID FROM EMPLOYEE
WHERE SAL=MAX(SAL))
DISPLAY THE EMPLOYEES DETAILS WHO WORKS IN DEVLOPER DEPT
SELECT * FROM EMPLOYEE WHERE DEPT_ID IN(SELECT DEPT_ID FROM DEPT WHERE
D_NAME =’DEV’)

WHOS NOT GET COMMISSION


SELECT * FROM EMP WHERE COMMISSION IS NULL
FINDING COUNT OF EMP’S IN EACH DEPT AND EMP MORETHAN 3
SELECT DEPT_ID,COUNT(*) FROM EMP GROUP BY DEPT_ID
SELECT DEPT_ID,COUNT(*) FROM EMP GROUP BY DEPT_ID HAVING COUNT(*)>=3
HOW TO DELETE EMPLOYEES WHO UNDER SUPPORT TEAM
DELETE FROM EMPLYEE WHERE DEPT_ID = (SELECT DEPT_ID FROM DEPT WHERE
D_NAME=’SUPPORT’)

WRITE THE QUERY SHOW WHO STARTS AND END WITH LETTERS
SELECT * FROM EMP WHERE NAME LIKE ‘A%’ OR ‘%A’ OR ‘A%%M’ or ‘A%M’
SELECT * FROM EMP WHERE NAME LIKE ‘_I%’ SECOND LATTER

HOW TO CHECK THE DISCRIPTION OF A TABLE


EXEC SP_COUMNS T_NAME

AUTO INCREMENT
CREATE TABLE KKK (KID INT IDENTITY (101, 1), NAME VARCHAR (20)) # IF WANT
DECREMENT(100,-1)

HOW TO DROP ALL TABLES AT A TIME


EXEC SP_MSFOREACHTABLE 'DROP TABLE?' DROP ONLY WHICH DON’T HAVE FK

HOW TO DISPLAY THE PRESENT DATE


SELECT GETDATE ()
SELECT CURRENT_TIMESTAMP

NULL IS EQUAL TO ZERO?


NULL IS NOT SAME AS ZERO IT REPRESENT A VALUE WHICH IS UNAVAILABLE, UNKNOW

CONSTRAINS TYPES
COLUMN LEVEL (ONLY 1 COLUMN) N TABLE LEVEL(MORE THAN 1 COLUMN)

HOW TO DISPLAY THE EVEN OR ODD RECORDS IN A TABLE


SELECT * FROM EMP WHERE EID%2=0 0R EID%2!=0

HOW TO INCREASE EMPLOYEE SAL 5%


UPDATE EMP SET SAL=SAL+(SAL*5.0/100.0)

WRITE THE QUERY TO DISPLAY THE NAMES START WITH OR ENDS WITH VOWELS
SELECT DISTINCT E_NAME
FROM
EMPLOYEE
WHERE
SUBSTRING(E_NAME,1,1) IN('A','E','I','O','U') AND SUBSTRING(E_NAME,1,1) IN('a','e','i','o','u')

NAMES WITHOUT VOWELS


SELECT DISTINCT ENMAE
FROM
EMP
WHERE
SUBSTRING(ENMAE,1,1) NOT IN('A','E','I','O','U')

CHARECTAR LENGTH EQUAL TO 5

SELECT *
FROM EMPLOYEE
WHERE LENGTH(NAME) = 5
AND SUBSTRING(NAME, 2, 1) = 'N';

HOW TO COMBINED 2 STRINGS

SELECT FNAME,LNAME,FNAME+’_’+LNAME AS FULLNAME FROM EMP

COMBINED 2 STRINGS WITH SPACE BY USING (REPALCE)

SELECT FNAME,LNAME,FNAME+'_'+LNAME AS
FULLNAME,REPLACE(FNAME+'_'+LNAME,'_',' ') AS FULLNAMEWITHSPACE FROM REP

OR
SELECT REPLACE('SQL TUTORIAL', 'SQL', 'HTML');
All CONSTRAINS IN SINGLE QUERY

CREATE TABLE ALLKEYS2 (ID INT PRIMARY KEY,


NAME VARCHAR (20) NOT NULL,
PAN INT NULL,
CLG_NAME VARCHAR (20) DEFAULT 'MITS',
AGE FLOAT CHECK (AGE>= 18),
SID INT FOREIGN KEY(SID) REFERENCES SMP (SID))

DIFF BETWEEN PRIMARY AND UNIQUE (ALLOW ONLY ONE NULL VALUE AND MORE
THAN 1 UNIQUE IN A TABLE)

KEYS
1) PK(PK=UNIQUE+NOT NULL) 2)FK 3) CONDIDATE KEY(SAME AS PK ) 4) SUPER
KEY(COMBINATION OF ID & NAME(DUPLICATION OF NAMES))

INDEX
CREATE INDEX KIRAN_INDEX ON TABLE_NAME(COLUMN_NAME)
ALTER INDEX INDEXNAME ON TNAME(CNAME)
CLUSTERED INDEX
IF YOU APPLY THE PRIMARY KEY TO ANY COLUMN, THEN AUTOMATICALLY IT WILL
BECOME A CLUSTERED INDEX.

YOU CAN HAVE ONLY ONE CLUSTERED INDEX IN ONE TABLE, BUT YOU CAN HAVE
ONE CLUSTERED INDEX ON MULTIPLE COLUMNS, AND THAT TYPE OF INDEX IS
CALLED A COMPOSITE INDEX.

CREATE CLUSTERED INDEX X


ON STUDENT (NAME ASC);
NON-CLUSTERED INDEX

CREATE NONCLUSTERED INDEX X


ON STUDENT (NAME ASC);

DROP INDEX KIRAN_INDEX

CLUSTERED INDEX NON-CLUSTERED INDEX

A clustered index is faster. A non-clustered index is slower.


CLUSTERED INDEX NON-CLUSTERED INDEX

The clustered index requires less memory A non-Clustered index requires more memory for
for operations. operations.

In a clustered index, the clustered index is In the Non-Clustered index, the index is the copy of
the main data. data.

A table can have only one clustered index. A table can have multiple non-clustered indexes.

The clustered index has the inherent ability A non-Clustered index does not have the inherent
to store data on the disk. ability to store data on the disk.

Clustered index is created on primary key. Clustered index is created on primary key.

-------> COUNT OF RECORDS


SELECT COUUNT(*) FROM EMP

------->UNION UNIONALL INTERSECT MINUS


UNION- SHOWS ALL RECORDS ONE TIME WITH 1ST TABLE COLUMN NAMES
UNION ALL- SHOWS DUPLICATES ALSO
INTERSECT-ONLY COMMAN RECORDS IN BOTH TABLE
MINUS- SHOWS ONLY UNIQUE RECORDS FROM LEFT TABLE

------->DIFF BETWEEN INNER JOIN AND INTERSECT


INTERSECT-NO.OF COLUMNS SHOULD BE SAME IN BOTH SELECT STATEMENTS, IT HAVE
TWO SELECT STATEMENTS, ORDER OF COLUMNS SHOULD BE SAME, DATA TYPES
SHOULD BE SAME

------->WHAT IS A RELATIONSHIP & DIFF TYPES OF RELATIONSHIPS


1-1 1-M M-1 M-M

HOW TO GIVE ALIAS NAME TO EXISTING COLOMN


SELECT MAX(SAL) AS HIGHEST SAL FROM EMP
HOW TO DISPLAY REVERSE NAME
SELECT NAME,REVERSE(NAME) FROM EMP

TYPES OF JOINS
INNER JOIN, OUTER JOIN (LEFT,RIGHT,FULL), CROSS JOIN, SELF JOIN

SELECT COLUMNS
FROM TABLE_NAME-1
INNER JOIN/LEFT JOIN/RIGHT JOIN/CROSS JOIN/FULL JOIN/ SELF JOIN
TABLE-2 ON CONDITION

DIFF BETWEEN BETWEEN & IN


BETWEEN USED TO DISPLAY ROWS BASED ON THE RANGE
SELECT * FROM EMP WHERE RNO BETWEEN 10 AND 50
IN IS USED TO CHECK FOR VALUES
SELECT * FROM EMP WHERE RNO IN (10,50)

WHAT ARE THE CLAUSES IN DBMS


WHERE AND HAVING GROUP BY AND ORDER BY LIKE BETWEEN IN NOT IN

HOW TO CONVERT LOWER UPPER TO UPPER


SELECT CITY,LOWER(CITY),UPPER(CITY),INITCAP(CITY) FROM DETAILS

FIND THE UNIQUE RECORDS


SELECT DISTINCT EID FROM EMP

HOW TO FETCH FIRST 3 CHARACTER


SELECT SUBSREING (ENMAE, 1, 3) AS KK FROM EMP # U CAN USE RIGHT ALSO
NORMAL FORM DESCRIPTION
1NF A relation is in 1NF if it contains an atomic value.
2NF A relation will be in 2NF if it is in 1NF and all non-key attributes are fully functional dependent
on the primary key.
3NF A relation will be in 3NF if it is in 2NF and no transition dependency exists.
BCNF A stronger definition of 3NF is known as Boyce Codd's normal form.
4NF A relation will be in 4NF if it is in Boyce Codd's normal form and has no multi-valued
dependency.
5NF A relation is in 5NF. If it is in 4NF and does not contain any join dependency, joining should be
lossless.

--------> DIFF BETWEEN SQL N MY_SQL


--------> VARCHAR IS ANSI STANDARD AND VARCHAR2 IS ORACLE STANDARD

------->TRIGGERS BEFORE OR AFTER AND INDEX CLUSTRED AND NON

--------> DIFF BETWEEN SQL & NO-SQL

CONCEPT WISE INTERVIEW QUESTIONS IN DBMS

1. What is SQL, and what are its primary functions in a database system?
2. Explain the differences between SQL and NoSQL databases.
3. What are the main components of a SQL statement?
4. What is the difference between SQL JOIN and SQL UNION?
5. Explain the differences between INNER JOIN, LEFT JOIN, RIGHT JOIN, and FULL JOIN.
6. What is an index in SQL, and why is it important?
7. What is normalization, and why is it important in a relational database?
8. What is denormalization, and when might you use it?
9. Explain the ACID properties of a transaction in the context of SQL databases.
10. What is a subquery, and how does it differ from a JOIN?
11. What is a stored procedure, and what are its advantages?
12. What is the difference between a primary key and a foreign key?
13. What is the purpose of the GROUP BY clause in SQL, and how is it used?
14. Explain the HAVING clause and its use in SQL queries.
15. What is SQL injection, and how can it be prevented?
16. What is the difference between a clustered and a non-clustered index?
17. Explain the concept of a SQL view.
18. What is a self-join, and when would you use one?
19. What is the purpose of the SQL CASE statement, and how is it used?
20. Explain the differences between the CHAR and VARCHAR data types.
21. What is a trigger in SQL, and when is it used?
22. What is a common table expression (CTE), and why might you use it?
23. What is the difference between a database and a schema?
24. How can you optimize a slow-performing SQL query?
25. Explain the differences between the SQL Server, MySQL, and PostgreSQL database management
systems.
26. What is the purpose of the SQL NULL value, and how is it handled in queries?
27. How would you import data from an external CSV file into a SQL database?
28. Explain the concept of database normalization and provide an example.
29. What are the advantages and disadvantages of using an ORM (Object-Relational Mapping) tool
with a SQL database?
30. Discuss the role of indexes in database performance optimization.

VIEWS VIEW IS A VIRTUAL (NEAR OR INDIRECT OR EFFECTIVE) TABLE


2 TYPES
1. SIMPLE
2. COMPLEX
CREATE VIEW SIMPLE AS SELECT * FROM EMP WHERE DEPT=’DEV’

ALTER VIEW SIMPLE AS SELECT * FROM EMP WHERE DEPT=’TL’

CREATE VIEW COMP AS SELECT EMP.ENMAE,DEPT.DNAME FROM EMP,DEPT WHERE


EMP.EID=DEPT.DID

INCREASE THE SALARY of all Employees by 10% who joined from date

UPDATE employees SET salary = salary * 1.10


WHERE hire_date <= DATE_SUB(CURDATE(), INTERVAL 2 YEAR) AND hire_date >
DATE_SUB(CURDATE(), INTERVAL 3 YEAR);

Dept wise highest salary


SELECT department_id, MAX(salary) AS max_salary
FROM employees
GROUP BY department_id;
With Details
SELECT department, employee_name, salary
FROM employees
WHERE salary >= (
SELECT MIN(salary)
FROM employees e2
WHERE e2.department = employees.department
ORDER BY salary DESC
LIMIT 3
)
ORDER BY department, salary DESC;

Retrieve the Departments Where the Average Salary is Above 50,000


SELECT department_id, AVG(salary) AS avg_salary
FROM employees
GROUP BY department_id HAVING AVG(salary) > 50000;

Students Names Above AVRG marks


SELECT student_name, marks
FROM students
WHERE marks > (SELECT AVG(marks) FROM students);

Identify Employees Who Have More Than One Designation

SELECT employee_id, employee_name, COUNT(designation) AS role_count


FROM employees
GROUP BY employee_id, employee_name
HAVING COUNT(designation) > 1;
Total Number of Employees in Each Department
SELECT department_id, COUNT(*) AS total_employees
FROM employees
GROUP BY department_id;

Same salary as someone


SELECT employee_name, salary FROM employees WHERE salary IN ( SELECT salary FROM employees GROUP BY
salary HAVING COUNT(*) > 1 );

You might also like