Postgres:在多对多关系表中获取最小和最大行数

时间:2016-11-05 06:21:35

标签: sql postgresql hibernate jpa ejb

我有RFQ(报价请求)和供应商的出价金额的映射表。

rfq_vendor_mapping:

id  rfq_id(FK)  vendor_id(FK)   amount
---------------------------------------

 1      1           1            100
 2      1           2            50
 3      2           1            200
 4      2           3            300
 5      2           2            40
 6      3           4            70
 7      3           1            90
 8      3           2            250
 9      4           3            30
 10     5           1            500

在上表中,我想分析供应商为每个RFQ提交最低和最高出价的次数。

预期输出:

vendor_id   min_bid_count   max_bid_count
-----------------------------------------
    1           1               2
    2           2               1
    3           1               2
    4           1               0

http://sqlfiddle.com/#!15/60198/1

1 个答案:

答案 0 :(得分:5)

将供应商的金额与窗口函数的最小值和最大值进行比较,并在外部查询级别运行条件计数:

CheckUsernameNotExist(username){
        return this.http.post('http://localhost:1337/userAPI/usernameExist', JSON.stringify({ username: username}))
            .map((res: Response) =>{return res.json().status)}
        );    
}

register(){
  this.userservice.CheckUsernameNotExist(user.username).subscribe(data=>{
        if(data){  //<<<< here you'll have true or false
          //do something
        }else{
          //do something
        }
  })
  console.log('username exist')}
}

SQL Fiddle.