Advertisement
Guest User

Untitled

a guest
May 6th, 2015
211
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.92 KB | None | 0 0
  1. CREATE TABLE `finals` (
  2. `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  3. `name` varchar(10) DEFAULT NULL,
  4. `result` char(4) DEFAULT NULL,
  5. PRIMARY KEY (`id`)
  6. )
  7.  
  8. mysql> select * from finals;
  9. +----+------+--------+
  10. | id | name | result |
  11. +----+------+--------+
  12. | 1 | John | Pass |
  13. | 2 | John | Fail |
  14. | 3 | John | Pass |
  15. | 4 | Kyle | Pass |
  16. | 5 | John | Pass |
  17. | 6 | Kyle | Pass |
  18. | 7 | Kyle | Pass |
  19. | 8 | Kyle | Fail |
  20. +----+------+--------+
  21. 8 rows in set (0.00 sec)
  22.  
  23. mysql> SELECT name, GROUP_CONCAT(result ORDER BY id) as result_str FROM finals GROUP BY name having result_str LIKE '%Pass,Pass,Pass%';
  24. +------+---------------------+
  25. | name | result_str |
  26. +------+---------------------+
  27. | Kyle | Pass,Pass,Pass,Fail |
  28. +------+---------------------+
  29. 1 row in set (0.00 sec)
  30.  
  31. SET @x = 0;
  32. SET @name = '';
  33. SET @result = '';
  34. SELECT name,consecutive FROM
  35. (SELECT
  36. name,
  37. (@nametag:=MD5(CONCAT(name,':',result))),
  38. (@x:=IF(@name=@nametag,@x+1,1)) consecutive,
  39. (@name:=@nametag) inc
  40. FROM finals ORDER BY name,id) A
  41. WHERE consecutive >= 3;
  42.  
  43. mysql> SELECT name,consecutive FROM
  44. -> (SELECT
  45. -> name,
  46. -> (@nametag:=MD5(CONCAT(name,':',result))),
  47. -> (@x:=IF(@name=@nametag,@x+1,1)) consecutive,
  48. -> (@name:=@nametag) inc
  49. -> FROM finals ORDER BY name,id) A
  50. -> WHERE consecutive >= 3;
  51. +------+-------------+
  52. | name | consecutive |
  53. +------+-------------+
  54. | Kyle | 3 |
  55. +------+-------------+
  56. 1 row in set (0.02 sec)
  57.  
  58. mysql>
  59.  
  60. mysql> SELECT
  61. -> name,
  62. -> (@nametag:=MD5(CONCAT(name,':',result))),
  63. -> (@x:=IF(@name=@nametag,@x+1,1)) consecutive,
  64. -> (@name:=@nametag) inc
  65. -> FROM finals ORDER BY name,id;
  66. +------+------------------------------------------+-------------+----------------------------------+
  67. | name | (@nametag:=MD5(CONCAT(name,':',result))) | consecutive | inc |
  68. +------+------------------------------------------+-------------+----------------------------------+
  69. | John | 84cc30b986fe149dfb765dd09fad8a60 | 1 | 84cc30b986fe149dfb765dd09fad8a60 |
  70. | John | 534b3d163a04b74a72c6dbe68db1c01e | 1 | 534b3d163a04b74a72c6dbe68db1c01e |
  71. | John | 84cc30b986fe149dfb765dd09fad8a60 | 1 | 84cc30b986fe149dfb765dd09fad8a60 |
  72. | John | 84cc30b986fe149dfb765dd09fad8a60 | 2 | 84cc30b986fe149dfb765dd09fad8a60 |
  73. | Kyle | 30fac0873cf25ad17b38bc37bda4b850 | 1 | 30fac0873cf25ad17b38bc37bda4b850 |
  74. | Kyle | 30fac0873cf25ad17b38bc37bda4b850 | 2 | 30fac0873cf25ad17b38bc37bda4b850 |
  75. | Kyle | 30fac0873cf25ad17b38bc37bda4b850 | 3 | 30fac0873cf25ad17b38bc37bda4b850 |
  76. | Kyle | 4a4e0aaa102c37f098bd6afd13ccfea0 | 1 | 4a4e0aaa102c37f098bd6afd13ccfea0 |
  77. +------+------------------------------------------+-------------+----------------------------------+
  78. 8 rows in set (0.00 sec)
  79.  
  80. mysql>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement