Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL-为表中的两个不同值返回一条记录_Sql_Database - Fatal编程技术网

SQL-为表中的两个不同值返回一条记录

SQL-为表中的两个不同值返回一条记录,sql,database,Sql,Database,选择国家名称和客户数量,前提是英国和英国应被视为同一国家。 客户(国家、客户ID) 您可以使用CASE表达式将英国映射到大不列颠(反之亦然)。然后,只需使用一个简单的聚合查询即可获得所需的结果。请注意,我在单独的子查询中映射国家名称,因为ANSI SQL不支持按派生列分组 SELECT country, COUNT(*) AS cnt FROM ( SELECT CASE WHEN country = 'GB' THEN 'UK' ELSE country END

选择国家名称和客户数量,前提是英国和英国应被视为同一国家。 客户(国家、客户ID)


您可以使用
CASE
表达式将英国映射到大不列颠(反之亦然)。然后,只需使用一个简单的聚合查询即可获得所需的结果。请注意,我在单独的子查询中映射国家名称,因为ANSI SQL不支持按派生列分组

SELECT
    country, COUNT(*) AS cnt
FROM
(
    SELECT
        CASE WHEN country = 'GB' THEN 'UK' ELSE country END AS country
    FROM yourTable
) t
GROUP BY country

我从你的问题中了解到,你可以尝试以下查询

Select country, count(*) from Customers 
group by country;

哪个数据库?那么什么是sql?结构化查询语言,任何数据库我只想要一个通用查询那‘t'means after’’是什么意思?@Hasan子查询后的
t
只是该派生表的别名。某些数据库(如Oracle)要求每个派生表都有一个别名。您是否需要它将取决于您正在使用的数据库,但将其作为一种习惯包含是一种良好的做法。
Select country, count(*) from Customers 
group by country;