duanpuqi9965 2016-05-24 03:07
浏览 26

每个重复行减少到一行相同的表

Table Name - Enrolments

 +-----------+------------------+-------------+-------------+-------------+----------------------+
 +  unit_id  +  student_number  +  unit_code  +  course_id  +  status_id  + last_modified_date  +
 +-----------+------------------+-------------+-------------+-------------+----------------------+
 +   20102   +    SN0001        +  HP-306.12  +   BPL-12    +  WITHDRAWN  +   2/8/2016 15:08     +
 +-----------+------------------+-------------+-------------+-------------+----------------------+
 +   20102   +    SN0001        +  HP-306.12  +   BMin-12   +  COMPLETED  +   2/8/2016 15:08     +
 +-----------+------------------+-------------+-------------+-------------+----------------------+
 +   20110  +     SN0002        +  AS-105.11  +   BBS-12    +  WITHDRAWN  +   2/9/2016 12:01     +
 +-----------+------------------+-------------+-------------+-------------+----------------------+
 +   20110   +    SN0002        +  AS-105.11  +   BMin-13   +  WITHDRAWN  +   2/9/2016 15:13     +
 +-----------+------------------+-------------+-------------+-------------+----------------------+

I've this data as shown in the table-enrolments, there are matching unit_id, student_number

2 conditions i would like to run a sql queries on the table:

a. I would like to remove the 'duplicated' rows and only retain the row that does not have status_id widthdrawn.

b. however, if the 2 'duplicated' rows both have withdrawn status_id and i just want to keep one.

The end result should look like the following table screen shot

Table Name - Newly changed table

 +-----------+------------------+-------------+-------------+-------------+----------------------+
+  unit_id  +  student_number  +  unit_code  +  course_id  +  status_id  +  last_modified_date  +
+-----------+------------------+-------------+-------------+-------------+----------------------+
+   20102   +    SN0001        +  HP-306.12  +   BMin-12   +  COMPLETED  +   2/8/2016 15:08     +
+-----------+------------------+-------------+-------------+-------------+----------------------+
+   20110   +    SN0002        +  AS-105.11  +   BMin-13   +  WITHDRAWN  +   2/9/2016 15:13     +
+-----------+------------------+-------------+-------------+-------------+----------------------+

Anyone can help on this ?

  • 写回答

1条回答 默认 最新

  • dsf12313 2016-05-24 03:20
    关注

    Your solution

    Perhaps something like

    SELECT * FROM (SELECT * FROM table ORDER BY `status_id`) t1 GROUP BY `unit_id`, `student_number`;
    

    Be warned, I've not tested this query myself so I cannot guarantee it works, report back if it does not and let me know the error ^_^

    评论

报告相同问题?

悬赏问题

  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100