简体   繁体   English

Scala scalikejdbc选择查询以返回地图

[英]Scala scalikejdbc select query to return a map

I have a query that does some aggregations that looks like this 我有一个查询,它做一些看起来像这样的聚合

  override def getMinMax(products: Seq[Product]): List[(String, BigDecimal, BigDecimal)] = {
    val ids = productsToSqlString(products)
    DB readOnly { implicit session =>
      sql"""SELECT id, min(p_discount_rate), max(p_discount_rate)
            |FROM ${Product.table}
            |WHERE p_config_sku IN ${configSkus} AND p_is_deleted IS FALSE
            |GROUP BY id
            """.stripMargin
        .map(rs => rs.string(1) -> (BigDecimal(rs.string(2)), BigDecimal(rs.string(3)))).toMap.list.apply

    }

I would like this to return a map of Ids to tuples of bigdecimals (discount rates) I am not really sure how to achieve that 我想将Ids的地图返回给bigdecimals的元组(折扣率),但我不确定如何实现

Best. 最好。

import scala.collection.breakOut    

val myData: List[(String, BigDecimal, BigDecimal)] = ???

val myMap: Map[String, (BigDecimal, BigDecimal)] = myData.map{ case (id, t1, t2) => id -> (t1 -> t2) }(breakOut) 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM