【发布时间】:2021-02-25 09:34:28
【问题描述】:
我有一个名为 package_type 的列,它包含如下字符串:
TP-CYS01-01-2700-W-003
TP-CYS01-01-2700-W-004
TP-CYS01-02-2700-W-003
TP-CYS01-02-2700-W-001
我需要计算package_type,但按package_no 分组,即CYS01-01、CYS01-02。
我所做的是这样的:
select
substring(substring(package_type, '-', 3), '-', -2) as package_no,
count(distinct package_type)
from
project_june
where
progress = bill_of_quantity and event_date = '2020-06-12'
group by
substring(substring(package_type, '-', 3), '-', -2) as package_no
我收到此错误:
整数的输入语法无效:“-”
我希望结果会是这样的:
package_no count
------------------
CYS01-01 2
CYS01-02 2
我应该如何编写这个查询?
谢谢。
【问题讨论】:
-
您不能在 GROUP BY 子句中定义列别名。跳过 AS ... 部分-
-
您使用的是哪个 dbms?
-
我删除了AS,还是报错
-
Wong 类型的论据:
substring(string, integer, integer) -
编写查询时,请采取更小的步骤。当第一个子字符串起作用时,添加第二个。然后添加 group by 等。
标签: sql string count aggregate-functions