Как добавить строку или символы в mysql при использовании группы по функции

Например, у меня есть таблица с именем XYZ, и в ней есть столбец COUNTRY, как я могу вывести результаты в следующем формате, используя группировку по функции,

В ИНДИИ 3 сотрудника

здесь 3 выбрано из count(), а ИНДИЯ сгруппирована по «GROUP BY», мой вопрос заключается в том, как вы печатаете «имеет» и сотрудников между ними и в конце в mySQl

Я изучаю СУБД в Oracle APEX. БЛАГОДАРЮ.

Я пробовал это, но не получил то, что хочу. Выберите отдельную СТРАНУ из группы XYZ по порядку стран по количеству (*) desc

ProPaki 22.03.2022 11:54

Каждая марка и версия сервера баз данных имеет свой диалект SQL. Пожалуйста, редактировать ваш вопрос, чтобы добавить ярлык для используемой вами базы данных. mysql? оракул? Другой?

O. Jones 22.03.2022 11:58

Если вы используете Oracle APEX, вы не можете использовать MySQL — какой из них на самом деле?

a_horse_with_no_name 22.03.2022 12:31

я использую oracle apex, который использует команды sql

ProPaki 22.03.2022 13:18

Обратите внимание, что «mysql» — это другой продукт. «sql» и «mysql» не являются синонимами. «mysql» — это реляционная база данных, такая же, как «oracle», «mariadb», «sql server» и другие. "sql" - это язык, который используют все эти базы данных...

Koen Lostrie 22.03.2022 14:21
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
1
5
30
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

В MySQL/MariaDB вы хотите

SELECT CONCAT_WS(' ', country, 'has', COUNT(*), 'employees')

В Oracle вы хотите

SELECT country || ' has ' || COUNT(*) || ' employees

Редактировать Это простая старая обработка строк. У каждого языка, включая каждый диалект SQL, есть свои способы обработки строк.

Вы можете сгенерировать любую строку, которую хотите, либо с помощью Oracle ||, либо с помощью CONCAT_WS() MariaDB/MySQL. Для вашего примера это

SELECT CONCAT_WS(' ', COUNT(*), 'employees from', country)

или

SELECT COUNT(*) || ' employees from ' || country

Спасибо - я не знал о CONCAT_WS. (Здесь это не проблема, но я вижу полезность в других ситуациях.) Я запомню, что CONCAT With Seperator

Kendle 22.03.2022 13:26

Что, если я захочу вот так 3 сотрудника из Индии?

ProPaki 22.03.2022 13:27

В Oracle мы можем использовать || для объединения строк в ВЫБРАТЬ.
Если мы хотим перечислить все значения в ГРУППА ПО, мы можем использовать LISTAGG().
(В mySQL мы можем использовать CONCAT() или CONCAT_WS() для простой конкатенации и GROUP_CONCAT() с GROUP BY.)

CREATE TABLE Employee (
id int, 
name varchar(10),
country varchar(10));
INSERT INTO Employee VALUES (1,'Tom','India');
INSERT INTO Employee VALUES (2,'Dick','India');
INSERT INTO Employee VALUES (3,'Harry','India');
SELECT country || ' has ' || COUNT(id) ||  ' employees' AS report
FROM Employee
GROUP BY country;
| REPORT                |
| :-------------------- |
| India has 3 employees |
SELECT country, LISTAGG(name,', ') Employees
FROM Employee
GROUP BY country;
COUNTRY | EMPLOYEES       
:------ | :---------------
India   | Tom, Dick, Harry

дб <> рабочий пример здесь

Еще одна вещь, что, если я хочу, чтобы это было так 3 сотрудника из Индии

ProPaki 22.03.2022 13:26

См. измененный ответ с добавлением LISTAGG().

Kendle 22.03.2022 13:33

Другие вопросы по теме