SQL-запрос для отображения последних 50% записей из таблицы сотрудников

Опубликовано: 1 Сентября, 2022

Здесь мы увидим, как отобразить последние 50% записей из таблицы сотрудников в базах данных сервера MySQL и MS SQL.

Для демонстрации мы создадим таблицу сотрудников в базе данных под названием « выродки ».

Создание базы данных:

Используйте приведенный ниже оператор SQL для создания базы данных с именем geeks:

CREATE DATABASE geeks;

Использование базы данных:

USE geeks;

Определение таблицы:

У нас есть следующая таблица Employee в нашей базе данных geeks :

CREATE TABLE Employee(
ID INT IDENTITY(1,1) KEY,     --IDENTITY(1,1) tells start ID from 1 and increment
                            -- it by 1 with each row inserted.
NAME VARCHAR(30) NOT NULL,
PHONE INT NOT NULL UNIQUE,
EMAIL VARCHAR(30) NOT NULL UNIQUE,
DATE_OF_JOINING DATE);

ПРИМЕЧАНИЕ. Мы должны использовать VARCHAR или BIGINT в качестве типа данных для столбца PHONE, чтобы избежать целочисленного переполнения.

Вы можете использовать следующий оператор для запроса описания созданной таблицы:

EXEC SP_COLUMNS Employee;

Добавление данных в таблицу:

Используйте приведенный ниже оператор, чтобы добавить данные в таблицу Employee :

INSERT INTO Employee (NAME, PHONE, EMAIL, DATE_OF_JOINING)
VALUES
("Yogesh Vaishnav", 0000000001, "yogesh@mail.com", "2019-10-03"),
("Vishal Vishwakarma", 0000000002, "chicha@mail.com", "2019-11-07"),
("Ajit Yadav", 0000000003, "ppa@mail.com", "2019-12-12"),
("Ashish Yadav", 0000000004, "baba@mail.com", "2019-12-25"),
("Tanvi Thakur", 0000000005, "tanvi@mail.com", "2020-01-20"),
("Sam", 0000000006, "sam@mail.com", "2020-03-03"),
("Ron", 0000000007, "ron@mail.com", "2020-05-16"),
("Sara", 0000000008, "sara@mail.com", "2020-07-01"),
("Zara", 0000000009, "zara@mail.com", "2020-08-20"),
("Yoji", 0000000010, "yoji@mail.com", "2020-03-10"),
("Rekha Vaishnav", 12, "rekha@mail.com", "2021-03-25");

Чтобы проверить содержимое таблицы, используйте следующий оператор:

SELECT * FROM Employee;

Теперь давайте извлечем последние 50% записей из таблицы сотрудников.

Для базы данных MS SQL:

В MS SQL мы можем напрямую получить последние 50% записей с помощью предложений top и процента и порядка. Простой синтаксис для того же приведен ниже:

Syntax :

select * from 

  /*Gives the top N percent records from bottom of a database table*/

(select top N percent * from <table_name> order by <column_name> desc)<identifier>

order by <column_name>;

Пример :

SELECT * FROM
(SELECT top 50 percent * FROM Employee ORDER BY ID DESC)
ORDER BY ID;

Выход :