例如,我有一個名為 XYZ 的表,它有一個 COUNTRY 列,如何使用 group by 函式取出以下格式的結果,
印度有 3 名員工
這里 3 是從 count() 中選擇的,印度按“GROUP BY”分組,我的問題是如何在 mySQl 之間和末尾列印“有”和員工
我正在 Oracle APEX 中學習 DBMS。謝謝。
uj5u.com熱心網友回復:
在 MySQL / MariaDB 你想要
SELECT CONCAT_WS(' ', country, 'has', COUNT(*), 'employees')
在甲骨文你想要
SELECT country || ' has ' || COUNT(*) || ' employees
編輯 這是普通的舊字串處理。每種語言,包括每種 SQL 方言,都有自己的字串處理方式。
您可以使用 Oracle||或 MariaDB / MySQL 的CONCAT_WS()生成任何型別的字串。對于你的例子,它是
SELECT CONCAT_WS(' ', COUNT(*), 'employees from', country)
要么
SELECT COUNT(*) || ' employees from ' || country
uj5u.com熱心網友回復:
在 Oracle 中,我們可以使用在SELECT||中連接字串。
如果我們想列出GROUP BY中的所有值,我們可以使用.
(在 mySQL 中,我們可以使用or進行簡單的連接并使用 GROUP BY。)LISTAGG()CONCAT()CONCAT_WS()GROUP_CONCAT()
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;| 報告 | | :-------------------- | | 印度有 3 名員工 |
SELECT country, LISTAGG(name,', ') Employees FROM Employee GROUP BY country;國家 | 雇員 :-------- | :--------------- 印度 | 湯姆、迪克、哈利
db<>在這里擺弄
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/448748.html
