03
Май
2022

Как сделать выборку за неделю кол-во постов юзера?

Делаю таск, из учебного проекта типа "stackoverflow". Нужно реализовать Api вывод всех последних ответов за неделю.  C Логикой реализации пока не ясно. Но в процессе.
Пишем на java+spring.

Есть юзер у него есть вопросы и ответ на вопросы. Как на данном форуме.

Так вот хотел бы для начало понять как организовать запрос в Postgresql.



answer
(id,user_id, question_id, html_body, persist_date, data_accept_time, update_date)

user_entity 

(Id, fullname, password, persist_date, role_id,email, nickname)

В каком ключе организовать пока не ясно.

select *
from answer
where date_accept_time > NOW() - Interval '7' day;

Так выглядит Answer


public List<AnswerDto> getAnswerById(Long id) {
        return entityManager.createQuery("SELECT new models.dto.answer.AnswerDto" +
                        "(answ.id," +
                        "answ.user.id," +
                        "SUM(r.count)," +
                        "answ.question.id," +
                        "answ.htmlBody," +
                        "answ.persistDateTime," +
                        "answ.isHelpful," +
                        "answ.dateAcceptTime," +
                        "(SELECT count (up.vote) FROM VoteAnswer up WHERE up.vote = 'UP_VOTE' AND up.user.id = answ.user.id AND answ.isDeleted = :del) - " +
                        "(SELECT count (down.vote) FROM VoteAnswer down WHERE down.vote = 'DOWN_VOTE' AND down.user.id = answ.user.id AND answ.isDeleted = :del)," +
                        "answ.user.imageLink," +
                        "answ.user.nickname)" +
                        "FROM Answer answ " +
                        "LEFT JOIN Reputation r ON answ.user.id = r.author.id WHERE answ.question.id = :id AND answ.isDeleted = :del GROUP BY answ.id, answ.user.imageLink, answ.user.nickname",
                        AnswerDto.class)
                .setParameter("id", id)
                .setParameter("del", false)
                .getResultList();
    }


Строго не судите) Только учусь) ("токсичные ответы" - тоже подойдут)

Источник: https://ru.stackoverflow.com/questions/1406049/%D0%9A%D0%B0%D0%BA-%D1%81%D0%B4%D0%B5%D0%BB%D0%B0%D1%82%D1%8C-%D0%B2%D1%8B%D0%B1%D0%BE%D1%80%D0%BA%D1%83-%D0%B7%D0%B0-%D0%BD%D0%B5%D0%B4%D0%B5%D0%BB%D1%8E-%D0%BA%D0%BE%D0%BB-%D0%B2%D0%BE-%D0%BF%D0%BE%D1%81%D1%82%D0%BE%D0%B2-%D1%8E%D0%B7%D0%B5%D1%80%D0%B0

Тебе может это понравится...

1 Ответ

  1. Gasbulla:

    Получилось в итоге?

Добавить комментарий