Consulta SQL para mostrar los últimos registros del 50% de la tabla de empleados

Aquí, vamos a ver cómo mostrar el último 50% de los registros de una tabla de empleados en las bases de datos del servidor MySQL y MS SQL.

Con fines de demostración, crearemos una tabla de empleados en una base de datos llamada » geeks «.

Creación de una base de datos:

Use la siguiente instrucción SQL para crear una base de datos llamada geeks:

CREATE DATABASE geeks;

Usando la base de datos:

USE geeks;

Definición de tabla:

Tenemos la siguiente tabla de empleados en nuestra base de datos 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);

NOTA: Deberíamos usar VARCHAR o BIGINT como el tipo de datos para la columna TELÉFONO para evitar el desbordamiento de enteros.

Puede usar la siguiente declaración para consultar la descripción de la tabla creada:

EXEC SP_COLUMNS Employee;

Agregar datos a la tabla:

Use la siguiente declaración para agregar datos a la tabla de empleados :

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');

Para verificar el contenido de la tabla, use la siguiente declaración:

SELECT * FROM Employee;

Ahora recuperemos el último 50% de los registros de la tabla de empleados.

Para la base de datos MS SQL:

En MS SQL podemos recuperar directamente el último 50% de los registros con la ayuda de las cláusulas top y percent y order by. Una sintaxis simple para el mismo se da a continuación:

Sintaxis:

Seleccionar de 

  /*Proporciona los primeros N registros porcentuales desde la parte inferior de una tabla de base de datos*/

(seleccione el N por ciento superior * de <table_name> ordenar por <column_name> desc)<identifier>

ordenar por <nombre_columna>;

Ejemplo :

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

Producción :

 

Publicación traducida automáticamente

Artículo escrito por yoji y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *