2013-11-08 2 views
2

Большинство существующих сообщений, которые я могу найти, касаются моего учебного jook, устарели.Добавить счет как поле выбора с помощью jooq SelectQuery

Я пытаюсь построить динамически, чтобы я мог использовать условия для определенных изменений. Я пытаюсь найти, как добавить COUNT(*) в существующий список полей

SelectQuery query = create().selectQuery(); 
query.addSelect(TABLE.FIELD); 
// add COUNT(*)? 

Я не вижу каких-либо методов или API помощи о том, как это сделать при создании запроса динамически.

+0

Не могли бы вы связать с парой устаревших сообщений? Таким образом, они могут быть отредактированы и исправлены ... –

ответ

1

Просто используйте DSL.count()

query.addSelect(count()); 

выше приобретает статический импорт, как, например:

import static org.jooq.impl.DSL.*; 
+0

Я пытаюсь написать 'SELECT *, COUNT (*) OVER() FROM table1 ... JOIN table 2 ... JOIN table3' и единственный способ, которым я могу получить эквивалент '' '' to 'create(). select (TABLE1.fields()) .select (TABLE2.fields()) .select (TABLE3.fields()) .select (count(). over()). К сожалению, 'create.select(). Select (count(). Over())' только возвращает поле 'count'. Есть ли более сжатый способ написать это? –

+0

@JoshPadnick: «Автономная звездочка» обычно поддерживается только сама по себе, а не в сочетании с другими столбцами. Поэтому в большинстве диалектов SQL запрос, который вы пытаетесь написать, тоже не работает. Однако есть трюк. Если вы зададите новый вопрос, я уточню (комментарий не подходит для этого). –

+0

Готово. http://stackoverflow.com/questions/25313595/jooq-concisely-representing-both-columns-and-aggregate-window-functions-in-a-q. Спасибо за вашу помощь, Лукас! –

Смежные вопросы