小编Mit*_*ell的帖子

MySQL GROUP BY年龄范围包括空范围

我正在尝试按年龄范围计算人数,我几乎可以解决2个问题:

  1. 如果在给定年龄范围内没有人(NULL),则该年龄范围不会出现在结果中.例如,在我的数据中没有"超过80"的条目,因此不会出现日期范围.基本上,当缺少日期范围时,它看起来像编程中的错误.

  2. 我想以特定的方式订购结果.在下面的查询中,因为ORDER BY是age_range,'20 - 29'的结果出现在'20岁以下'的结果之前.

这是db表"查询"的示例:

inquiry_id  birth_date
1           1960-02-01
2           1962-03-04
3           1970-03-08
4           1980-03-02
5           1990-02-08
Run Code Online (Sandbox Code Playgroud)

这是查询:

SELECT
    CASE
        WHEN age < 20 THEN 'Under 20'
        WHEN age BETWEEN 20 and 29 THEN '20 - 29'
        WHEN age BETWEEN 30 and 39 THEN '30 - 39'
        WHEN age BETWEEN 40 and 49 THEN '40 - 49'
        WHEN age BETWEEN 50 and 59 THEN '50 - 59'
        WHEN age BETWEEN 60 and 69 THEN '60 - 69'
        WHEN …
Run Code Online (Sandbox Code Playgroud)

mysql

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

带有GROUP BY和零条目的MySQL COUNT

我有2张桌子:

表1. options_ethnicity包含以下条目:

ethnicity_id ethnicity_name  
1 White  
2 Hispanic  
3 African/American  
Run Code Online (Sandbox Code Playgroud)

表2. inquiries包含以下条目:

inquiry_id ethnicity_id  
1 1  
2 1  
3 1  
4 2  
5 2  
Run Code Online (Sandbox Code Playgroud)

我想生成一个表格,显示按种族划分的查询次数.到目前为止,我的查询如下所示:

SELECT options_ethnicity.ethnicity_name, COUNT('inquiries.ethnicity_id') AS count
FROM (inquiries 
    LEFT JOIN options_ethnicity ON
    options_ethnicity.ethnicity_id = inquiries.ethnicity_id)  
GROUP BY options_ethnicity.ethnicity_id
Run Code Online (Sandbox Code Playgroud)

该查询给出了正确的答案,但没有非洲/美国的列有0个结果.

White 3  
Hispanic 2
Run Code Online (Sandbox Code Playgroud)

如果我用右连接替换LEFT JOIN,我会获得所有3个种族名称,但非洲/美国人的数量是错误的.

White 3  
Hispanic 2  
African/American 1
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激.

这是对这篇文章的更新,看起来似乎是一个有效的查询:

SELECT 
    options_ethnicity.ethnicity_name, 
    COALESCE(COUNT(inquiries.ethnicity_id), 0) AS count 
FROM options_ethnicity LEFT JOIN inquiries ON inquiries.ethnicity_id = options_ethnicity.ethnicity_id 
GROUP BY options_ethnicity.ethnicity_id 

UNION ALL …
Run Code Online (Sandbox Code Playgroud)

mysql sql join

2
推荐指数
1
解决办法
3498
查看次数

标签 统计

mysql ×2

join ×1

sql ×1