Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana cara mendapatkan semua catatan tanpa menghapus di Grup di mysql

Jika Anda menggunakan MySQL 8+, kami dapat menanganinya menggunakan ROW_NUMBER :

WITH cte AS (
    SELECT *, ROW_NUMBER() OVER (PARTITION BY Date ORDER BY Time) rn
    FROM attendancedata
    WHERE EnrolledID = 23
)

SELECT
    Date,
    MAX(CASE WHEN rn = 1 THEN Time END) AS PO1,
    MAX(CASE WHEN rn = 2 THEN Time END) AS PO2,
    MAX(CASE WHEN rn = 3 THEN Time END) AS PO3,
    MAX(CASE WHEN rn = 4 THEN Time END) AS PO4,
    MAX(CASE WHEN rn = 5 THEN Time END) AS PO5,
    MAX(CASE WHEN rn = 6 THEN Time END) AS PO6,
    MAX(CASE WHEN rn = 7 THEN Time END) AS PO7
FROM cte
GROUP BY
    Date
ORDER BY
    Date;

Tetapi perhatikan bahwa secara umum diinginkan untuk menyimpan tanggal dan waktu dalam satu datetime lapangan dengan MySQL. Dalam kasus khusus ini, ini berhasil dengan baik, tetapi ini mungkin tidak selalu benar.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Fungsi MAX digunakan dengan klausa GROUP BY

  2. Panggil fungsi bersarang/dalam mysql di querydsl

  3. Bagaimana menerapkan indeks unik dua arah di beberapa kolom

  4. Cara membuat Facebook like friends system di php dengan mysql

  5. MySql - HAVING vs WHERE