# Команды консоли Rails

**URL:** <https://meta.discourse.org/t/rails-console-commands/300682>\
**Category:** Development\
**Tags:** rails-console\
**Created:** [23.Март.2024 23:40:01 UTC](https://meta.discourse.org/t/rails-console-commands/300682 "2024-03-23T23:40:01Z")\
**Posts on this page:** 1\
**Showing post:** 13

<div class="post-metadata">

**Author:** ![Isambard](https://avatars.discourse-cdn.com/v4/letter/i/858c86/32.png) [@Isambard](https://meta.discourse.org/u/Isambard)\
**Post date:** [25.Март.2024 13:15:05 UTC](https://meta.discourse.org/t/rails-console-commands/300682/13 "2024-03-25T13:15:05Z")

</div>

Для стандартных запросов select, where, sort, limit я пишу это сам, но всё, что сложнее, я теперь поручаю ИИ. Я спросил ИИ:

> напиши запрос, который показывает категорию, а затем перечисляет топ-5 авторов тем для этой категории и количество созданных ими тем

И сразу получил ответ (это не база данных Discourse):

```sql
WITH TopTopicStarters AS (
    SELECT
        c.id AS category_id,
        c.name AS category_name,
        u.name AS user_name,
        COUNT(t.id) AS num_topics_started,
        ROW_NUMBER() OVER(PARTITION BY c.id ORDER BY COUNT(t.id) DESC) AS rank
    FROM topics t
    JOIN categories c ON t.category_id = c.id
    JOIN users u ON t.user_id = u.userid
    GROUP BY c.id, u.name
)

SELECT 
    c.category_name,
    tts.user_name,
    tts.num_topics_started
FROM categories c
JOIN TopTopicStarters tts ON c.id = tts.category_id
WHERE tts.rank <= 5;

```

Я бы точно не смог придумать это сам без долгих поисков в Google и множества проб и ошибок!

---

_[View the full topic](https://meta.discourse.org/t/rails-console-commands/300682)._
