小编ran*_*ssi的帖子

基本sql:在一个查询中多次从同一列中选择AVG()值,当每个想要的AVG()值使用不同的WHERE子句时

我想从一个表中的一个列(value_to_count)中获得三个不同的平均值,其中所有这些平均值具有不同的WHERE子句(根据时间).

示例数据:

###services#### Table
service_id       value_to_count                time
-----------      -----------------------       ---------
     604                    2054               04:04:50
     604                    3444               05:00:15
     604                    2122               07:12:50
     604                    2144               09:10:50
     604                    2001               13:12:53
     602                    2011               15:00:12
     602                    2115               17:22:35
     602                    1411               20:22:12
     602                    1611               21:04:52
     602                    2111               23:43:45
Run Code Online (Sandbox Code Playgroud)

我现在正在使用此查询来获得18到23之间的平均值:

询问

SELECT 
service_id AS service, AVG(value_to_count) AS primetime 
FROM services 
WHERE HOUR(time) BETWEEN 18 AND 23 
GROUP BY service_id
Run Code Online (Sandbox Code Playgroud)

它给了我这样的结果:

### Result #### 
service          primetime
-----------      --------------      
     604               2154           
     602               2444           
Run Code Online (Sandbox Code Playgroud)

现在我想得到我已经得到的其他平均值.这一次,我只是想通过"HOUR(时间)之间的06和18"和平均"HOUR(时间)23与06"以及.

这是我想得到的结果形式:

### Wanted Result #### 
service          primetime …
Run Code Online (Sandbox Code Playgroud)

sql average multiple-conditions

7
推荐指数
1
解决办法
1万
查看次数

标签 统计

average ×1

multiple-conditions ×1

sql ×1