SQL查找列中每种类型的总计数

时间:2015-09-15 20:55:43

标签: sql

我正在学习SQL,并且难以理解应该是一个简单的查询。我有一个具有以下模式的表:

SimpleDateFormat format = 
  dateOrder == DMY ?
    new SimpleDateFormat("{2}" + sep + "{1}" + sep + "{0}")) :
  dateOrder == MDY ?
    new SimpleDateFormat("{1}" + sep + "{2}" + sep + "{0}")) :
  dateOrder == YMD ?
    new SimpleDateFormat("{0}" + sep + "{1}" + sep + "{2}")) :
  null;

我想编写一个查询来返回一个表,该表计算每种类型的实例总数,并返回一个具有以下模式的表,例如,如果12行中出现“Blue”,则发生“Red”在上表中的16行中,结果将是:

public static int power(int base, int n) {
    return n == 0 ? 1 : multiply(base, power(base, n -1);
}

public static int multiply(int a, int b) {
    return a > 0 ? add(multiply(a - 1, b), b) : 0;
}

public static int add(int a, int b) {
    return a > b ? 1 + add(a -1, b) : b > 0 ? 1 + add(0, b -1) : 0;
}

1 个答案:

答案 0 :(得分:27)

你可以这样做:

SELECT Type, COUNT(*) FROM TABLE GROUP BY Type

如果您希望在单独的列中看到类型,可以执行以下操作:

SELECT SUM(CASE WHEN Type = 'Blue' THEN 1 ELSE 0 END) AS Blue, SUM(CASE WHEN Type = 'Red' THEN 1 ELSE 0 END) AS Red FROM TABLE