Advertisement
Guest User

Untitled

a guest
Jun 20th, 2019
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 1.12 KB | None | 0 0
  1. CREATE TABLE test_row_number(id INTEGER PRIMARY KEY, rand INTEGER);
  2.  
  3. INSERT INTO test_row_number(id,rand)
  4. VALUES (94,73), (91,76), (90,78), (92,79), (96,75), (95,71), (99,74), (97,70), (93,77), (98,72);
  5.  
  6. SET sql_mode = '';
  7. SELECT ROW_NUMBER() OVER (ORDER BY rand) AS row, id, rand FROM test_row_number ORDER BY id DESC; # test=1 run with OK result
  8. SELECT ROW_NUMBER() OVER (ORDER BY rand) AS row, id, rand FROM test_row_number GROUP BY id ORDER BY id DESC; # test=2 run with wrong result
  9. SELECT ROW_NUMBER() OVER (ORDER BY rand) AS row, id, rand FROM test_row_number GROUP BY id, rand ORDER BY id DESC; # test=3 run with OK result
  10.  
  11. SET sql_mode = 'ONLY_FULL_GROUP_BY';
  12. SELECT ROW_NUMBER() OVER (ORDER BY rand) AS row, id, rand FROM test_row_number ORDER BY id DESC; # test=4 won't run
  13. SELECT ROW_NUMBER() OVER (ORDER BY rand) AS row, id, rand FROM test_row_number GROUP BY id ORDER BY id DESC; # test=5 won't run
  14. SELECT ROW_NUMBER() OVER (ORDER BY rand) AS row, id, rand FROM test_row_number GROUP BY id, rand ORDER BY id DESC; # test=6 run with OK result
  15.  
  16. DROP TABLE test_row_number;
  17.  
  18. # Why does test 2 return the wrong result?
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement