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;