假设我为上学的学生提供了一张桌子:
St_ID |St_Name|Class_ID|Year
------+-------+--------+----
02345|John | 345|2011
07871|Jane | 234|2010
等等。 我希望通过连接Class_ID和amp;来对每个类运行查询。年。 即345-2011是一类
如何通过在查询中使用串联字符串来计数(*)?
答案 0 :(得分:5)
两个选项:
1)将连接列添加到group by子句
EG。
SELECT columna || columnb || columnc
FROM table
GROUP BY columna || columnb || columnc
2)单独添加除了组中连接列的每一列
EG。
SELECT columna || columnb || columnc
FROM table
GROUP BY columna, columnb, columnc
答案 1 :(得分:2)
您不需要连接它们,只需列出GROUP BY
语句中的所有三列。
如果你必须连接,那么只需将concatenate命令放在GROUP BY中。
答案 2 :(得分:0)
select Class_ID||Year as class_year, count(*)
from table
group by 1
使用group by
,您可以参考 number 列。
肛门保证会建议您应该参考表达式,如下所示:group by Class_ID||Year
,但我认为这个数字更清晰,因为它更容易阅读,尤其是因为如果您以后更改表达式,您不必记住也更改组中的表达式。