Mysql 用于获取列的唯一值并复制其他列的值的查询

Mysql 用于获取列的唯一值并复制其他列的值的查询,mysql,Mysql,这是我的表,我想要唯一的值,但所有的不动产记录都需要该值 Original Table output --------------- Department EmployeeName EmployeeID Department EmployeeName EmployeeID ------------------------------------ --

这是我的表,我想要唯一的值,但所有的不动产记录都需要该值

         Original Table                           output
        ---------------                     
Department EmployeeName EmployeeID     Department EmployeeName EmployeeID

------------------------------------      ------------------------------
Accounts     Raj           123           Accounts     Raj           123
Accounts     Alok          124                        Alok          124
Accounts     Amit          125                        Amit          125
Sales        Henry         263           Sales        Henry         263 
Sales        Mark          454                        Mark          454
Hr           Lusi          342           Hr           Lusi          342  
Hr           Rosy          637                        Rosy          637 

尝试使用独特的查询来选择唯一的值


检查此链接

这是一个带有完整演示的解决方案

SQL:

输出:

mysql> select * from t1;
+------------+--------------+------------+
| Department | EmployeeName | EmployeeID |
+------------+--------------+------------+
| Accounts   | Raj          |        123 |
| Accounts   | Alok         |        124 |
| Accounts   | Amit         |        125 |
| Sales      | Henry        |        263 |
| Sales      | Mark         |        454 |
| Hr         | Lusi         |        342 |
| Hr         | Rosy         |        637 |
+------------+--------------+------------+
7 rows in set (0.00 sec)

mysql>
mysql> -- Query needed
mysql> SELECT
    ->     CASE WHEN @last_dep IS NULL OR @last_dep != Department
    ->             THEN (@last_dep:=Department)
    ->         WHEN @last_dep = Department
    ->             THEN ''
    ->         END AS Department,
    ->     EmployeeName,
    ->     EmployeeID
    -> FROM t1 JOIN (SELECT @last_dep:=NULL) v;
+------------+--------------+------------+
| Department | EmployeeName | EmployeeID |
+------------+--------------+------------+
| Accounts   | Raj          |        123 |
|            | Alok         |        124 |
|            | Amit         |        125 |
| Sales      | Henry        |        263 |
|            | Mark         |        454 |
| Hr         | Lusi         |        342 |
|            | Rosy         |        637 |
+------------+--------------+------------+
7 rows in set (0.00 sec)

一种更简单的方法是:可以在应用程序级别进行格式化

select Department, GROUP_CONCAT(EmployeeName),GROUP_CONCAT(EmployeeID) from t1 group by Department;

从表_name GROUP中按部门选择部门、员工姓名、员工ID

基于什么独特?嘿,Somil,看看这篇文章。请帮我用子查询解决这个问题。我们能做到吗?你想用子查询避免什么?用户变量?是的,我们希望避免使用用户变量。。我们只能通过使用子查询来实现。
select Department, GROUP_CONCAT(EmployeeName),GROUP_CONCAT(EmployeeID) from t1 group by Department;