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

时间:2017-09-28 04:05:29

标签: sql database

选择国家/地区名称及其中的客户数量,前提是英国和国家/地区应视为同一国家/地区。 客户(国家,custID,)

+----------+-------------+
| custID   | country     |
+----------+-------------+
| 101      |         US  |
| 102      |         UK  |
| 103      |         GB  |
| 104      |         UAE |
| 105      |         UK  |
| 106      |         GB  |
+----------+-------------+

2 个答案:

答案 0 :(得分:1)

您可以使用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

答案 1 :(得分:0)

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

def compareRows(arr1, arr2):
    arr1 = sum(arr1)
    arr2 = sum(arr2)
    return arr1 > arr2
data = np.array(pd.read_csv('https://raw.githubusercontent.com/gsprint23/cpts215/master/progassignments/files/cancer.csv',  header=None))
    data = data.T
    #print(data)
    df = pd.DataFrame(data[1:], columns=data[0], dtype=float).T