Advertisement
cdsatrian

group and limited view

Apr 13th, 2017
679
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 2.53 KB | None | 0 0
  1. DROP TABLE IF EXISTS t_barang;
  2. CREATE TABLE t_barang(
  3. id INT AUTO_INCREMENT PRIMARY KEY,
  4. nama VARCHAR(50),
  5. kategori TINYINT,
  6. jml TINYINT,
  7. waktu DATE
  8. );
  9.  
  10. INSERT INTO t_barang(nama,kategori,jml,waktu)
  11. VALUES
  12. ('sepatu bot anak',1,6,'2017-04-01'),
  13. ('baju anak perempuan',2,4,'2017-04-01'),
  14. ('sepatu olahraga',1,8,'2017-04-01'),
  15. ('baju anak laki-laki',2,4,'2017-04-02'),
  16. ('sepatu bot dewasa',1,6,'2017-04-02'),
  17. ('sepatu olahraga anak',1,2,'2017-04-02'),
  18. ('sepatu futsal',1,9,'2017-04-03'),
  19. ('sepatu tenis',1,3,'2017-04-04'),
  20. ('sepatu golf',1,2,'2017-04-04'),
  21. ('baju tidur anak',2,4,'2017-04-05'),
  22. ('baju olahraga anak',2,5,'2017-04-06');
  23.  
  24. SELECT * FROM t_barang ORDER BY kategori,waktu DESC;
  25.  
  26. +----+----------------------+----------+------+------------+
  27. | id | nama                 | kategori | jml  | waktu      |
  28. +----+----------------------+----------+------+------------+
  29. |  9 | sepatu golf          |        1 |    2 | 2017-04-04 |
  30. |  8 | sepatu tenis         |        1 |    3 | 2017-04-04 |
  31. |  7 | sepatu futsal        |        1 |    9 | 2017-04-03 |
  32. |  6 | sepatu olahraga anak |        1 |    2 | 2017-04-02 |
  33. |  5 | sepatu bot dewasa    |        1 |    6 | 2017-04-02 |
  34. |  1 | sepatu bot anak      |        1 |    6 | 2017-04-01 |
  35. |  3 | sepatu olahraga      |        1 |    8 | 2017-04-01 |
  36. | 11 | baju olahraga anak   |        2 |    5 | 2017-04-06 |
  37. | 10 | baju tidur anak      |        2 |    4 | 2017-04-05 |
  38. |  4 | baju anak laki-laki  |        2 |    4 | 2017-04-02 |
  39. |  2 | baju anak perempuan  |        2 |    4 | 2017-04-01 |
  40. +----+----------------------+----------+------+------------+
  41.  
  42. SELECT a.nama,a.kategori, a.jml, DATE_FORMAT(a.waktu,'%d-%b-%Y') AS waktu
  43. FROM (
  44.   SELECT
  45.     *,
  46.     IF( @prev <> kategori, @rownum := 1, @rownum := @rownum+1 ) AS rank,
  47.     @prev := kategori
  48.   FROM t_barang t
  49.   JOIN (SELECT @rownum := NULL, @prev := 0) AS r
  50.   ORDER BY t.kategori,t.waktu DESC
  51. ) AS a
  52. WHERE a.rank <= 3
  53. ORDER BY kategori, waktu DESC;
  54.  
  55. +---------------------+----------+------+-------------+
  56. | nama                | kategori | jml  | waktu       |
  57. +---------------------+----------+------+-------------+
  58. | sepatu tenis        |        1 |    3 | 04-Apr-2017 |
  59. | sepatu golf         |        1 |    2 | 04-Apr-2017 |
  60. | sepatu futsal       |        1 |    9 | 03-Apr-2017 |
  61. | baju olahraga anak  |        2 |    5 | 06-Apr-2017 |
  62. | baju tidur anak     |        2 |    4 | 05-Apr-2017 |
  63. | baju anak laki-laki |        2 |    4 | 02-Apr-2017 |
  64. +---------------------+----------+------+-------------+
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement