Advertisement
madrahimov

Тестовые задания

Nov 2nd, 2017
477
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.06 KB | None | 0 0
  1. Задача #1
  2. Имеется таблица invoices, с полями id(uuid), name(character varying), created_at(timestamp without time zone)
  3.  
  4. id | name | created_at
  5. —------------------------------------+--------------+----------------------------
  6. b8a66412-0bd6-4152-9e19-8cb7dcaa33cd | Накладная 1 | 2017-05-20 15:57:44.351015
  7. 140a360e-178b-4daa-a520-9778cd2ab0d3 | Накладная 2 | 2017-05-20 15:57:44.351015
  8. 9c8affbd-ede1-4407-baf7-352fcaad8a07 | Накладная 3 | 2017-05-20 15:57:44.351015
  9. fbae81fb-b136-4247-9ebb-e52126e145fe | Накладная 4 | 2017-05-20 15:57:44.351015
  10. 2ed3ae9b-d7da-412d-822d-d2aca0dddb62 | Накладная 5 | 2017-05-20 15:57:44.351015
  11. ade5d2f2-9c31-4893-882a-6bbb05effe3d | Накладная 6 | 2017-05-20 15:57:44.351015
  12. 1c19da00-4b09-43b8-a621-bb30f8d4c840 | Накладная 7 | 2017-05-20 15:57:44.351015
  13. 019bc622-353b-4754-851e-68e64b94748a | Накладная 8 | 2017-05-20 15:57:44.351015
  14. 180b1a2b-807f-45df-b065-612ce07a377c | Накладная 9 | 2017-05-20 15:57:44.351015
  15. f434b8f3-0c12-4ed5-89b8-82aa3b4e31c6 | Накладная 10 | 2017-05-20 15:57:44.351015
  16. 92b6827b-a98d-46cb-a1f4-0148848296d4 | Накладная 11 | 2017-05-20 15:57:44.351015
  17. 7ce04148-862b-4c67-aef2-6eb5f1d3a998 | Накладная 12 | 2017-05-20 15:57:44.351015
  18. 85d7e570-4863-4379-bf55-61c0adacfaf1 | Накладная 13 | 2017-05-20 15:57:44.351015
  19. ba33f0bf-2727-441f-8fbd-6af1d2c5845c | Накладная 14 | 2017-05-20 15:57:44.351015
  20. 0117a50c-a21b-417e-9ff8-bc95b5ff6ae0 | Накладная 15 | 2017-05-20 15:57:44.351015
  21. 36868e43-1f6c-43d7-9aaa-6aa1c6ee1d09 | Накладная 16 | 2017-05-20 15:57:44.351015
  22. 659cc627-2c80-495a-9718-be16b1e53b77 | Накладная 17 | 2017-05-20 15:57:44.351015
  23. 1108b986-3c13-417a-af66-5306576a1faa | Накладная 18 | 2017-05-20 15:57:44.351015
  24. 465ccdc4-b974-4e5d-824f-97070c9deb30 | Накладная 19 | 2017-05-20 15:57:44.351015
  25. fe430d7b-fb25-44ed-8c9a-a1aad6099a8c | Накладная 20 | 2017-05-20 15:57:44.351015
  26. 7fa63b38-bb7a-4982-b85a-c08c2e799112 | Накладная 21 | 2017-05-20 15:57:44.351015
  27. 1087c00f-6963-4ace-9e08-4721b3ac40e1 | Накладная 22 | 2017-05-20 15:57:44.351015
  28. c24b5e63-e367-4a8f-92dd-1e4dfa1ed3f0 | Накладная 23 | 2017-05-20 15:57:44.351015
  29. de4f3da2-5caa-4599-bc80-cab42e74def4 | Накладная 24 | 2017-05-20 15:57:44.351015
  30. 9b2877b9-07e6-4b84-9ac5-525837272c9c | Накладная 25 | 2017-05-20 15:57:44.351015
  31. 55617327-1da9-471e-bd9d-5d17d5e7a583 | Накладная 26 | 2017-05-20 15:57:44.351015
  32. 30a7e19a-120e-4ac1-a0a9-7180bd33d06f | Накладная 27 | 2017-05-20 15:57:44.351015
  33. f2dfcf56-60d7-4a29-903d-c3ebae345ed3 | Накладная 28 | 2017-05-20 15:57:44.351015
  34. b53a31b8-05e6-42ec-85a1-c7701f44104b | Накладная 29 | 2017-05-20 15:57:44.351015
  35. fe421df5-a389-43e8-916e-b97f22224b66 | Накладная 30 | 2017-05-20 15:57:44.351015
  36.  
  37. Необходимо написать sql запрос, с сортировкой таблицы по полю name в обратном порядке по номеру
  38. Результат запроса:
  39.  
  40. id | name | created_at
  41. —------------------------------------+--------------+----------------------------
  42. fe421df5-a389-43e8-916e-b97f22224b66 | Накладная 30 | 2017-05-20 15:57:44.351015
  43. b53a31b8-05e6-42ec-85a1-c7701f44104b | Накладная 29 | 2017-05-20 15:57:44.351015
  44. f2dfcf56-60d7-4a29-903d-c3ebae345ed3 | Накладная 28 | 2017-05-20 15:57:44.351015
  45. 30a7e19a-120e-4ac1-a0a9-7180bd33d06f | Накладная 27 | 2017-05-20 15:57:44.351015
  46.  
  47.  
  48. Ответ: COALESCE(CAST(SUBSTRING('Накладная 27' FROM '([0-9]{1,10})') AS INTEGER), 0) DESC
  49.  
  50.  
  51.  
  52.  
  53. Задача #2 ruby
  54. Дана папка с файлами, кол-во файлов не ограничено, вложенных папок нет.
  55. Необходимо вывести в массив хешей, где содержится информация об одинаковых файлах.
  56.  
  57. Пример:
  58. result = [{filename: 'file1.png', filename: 'file2.png'}, {filename: 'file3.png', filename: 'file3990.png'}]
  59.  
  60. Ответ:
  61.  
  62. array = []
  63. path = '/Users/ilhom/test_images'
  64. Dir.foreach(path) do |filename|
  65. next if filename == '.' || filename == '..'
  66.  
  67. sha = Digest::SHA256.file("#{path}/#{filename}")
  68.  
  69. hash = array.find {|x| x[:sha] == sha }
  70. if hash.blank?
  71. hash = {filename: filename, count: 1, sha: sha}
  72. array « hash
  73. else
  74. hash[:count] += 1
  75. end
  76. end
  77.  
  78. array.each { |h| h.delete(:sha) }
  79.  
  80.  
  81. Задача 3# rails
  82. Написать проект в котором будет реализован блог пользователя.
  83. Использовать:
  84. Авторизация devise, bootstrap, postgresql, rails5
  85.  
  86.  
  87.  
  88. вывести список пользователей в отсортированном порядке при этом, первые пользователи начинаются с буквы С, остальные по алфавиту
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement