Хотя я не думаю, что это можно сделать в Dao, это легко сделать при запросе LiveData в репозитории или viewModel (или там, где вы запрашиваете список), используя преобразование. Поскольку я не знаю ваших данных, я использую вымышленные:
val categoryStatsMap: LiveData<Map<String, Float>> =
Transformations.map(
database.categoryStatsDao.getCategoryStats()) {it ->
it.map {it.key to it.value}.toMap()
}
'it.key' и 'it.value' - это поля в объекте сущности, которые вы хотите использовать как ... пары ключей и значений на карте.
Преобразования дают вам живой объект данных, основанный на другом реальном объекте данных. Я не знаю, что такое накладные расходы, но я предполагаю, что они не должны быть слишком большими.