Псевдоним для агрегированного столбца

#kotlin #orm #kotlin-exposed

#kotlin #orm #kotlin-открытый

Вопрос:

Я хотел бы получить среднее значение столбца, используя Kotlin Exposed.

 object MyTable: IntIdTable("MyTable") {
    val score = integer("score")

val result = MyTable.slice(
        MyTable.score.avg().alias("avg_points")
).first()
 

Как мне получить результат?

Для обычных столбцов я бы использовал

 result[MyTable.score]
 

Но теперь это агрегат с псевдонимом. Я пробовал

 result["avg_points"]
 

Но это не удается. Я не вижу много общедоступных методов ResultRow .

Ответ №1:

Попробуйте это. Сначала сохраните среднее значение в переменной

 val avgColumn = MyTable.score.avg().alias("avg_points")
 

Затем получите результаты как таковые

 val result = MyTable.slice(
                avgColumn
        ).selectAll().first()

val avg = result[avgColumn]