SQL新手希望得到一些select语句的帮助
我可以成功运行:
select distinct t.QUALIFIEDORGUNITCODE as DEALERNUMBER,
count(distinct(t.TRANSACTIONID)) as TRANSACTION_VOLUME
from adtdealers.transaction t
where t.DATECREATED between '01-oct-17' and '01-nov-17'
group by t.QUALIFIEDORGUNITCODE;
但是如果我尝试在select中添加另一个字段,则会收到以下错误:
ORA-00936:缺少表达式00936. 00000 - "缺少表达式" *原因:*操作:行错误:17列:105
select to_char(t.DATECREATED, 'MON-DD') as DAY,
count(distinct(t.TRANSACTIONID)) as TRANSACTION_VOLUME,
distinct t.QUALIFIEDORGUNITCODE as DEALERNUMBER
from adtdealers.transaction t
where t.DATECREATED between '01-oct-17' and '01-nov-17'
group by to_char(t.DATECREATED, 'MON-DD'), t.QUALIFIEDORGUNITCODE;
我也可以成功地运行:
select distinct t.QUALIFIEDORGUNITCODE as DEALERNUMBER,
to_char(t.DATECREATED, 'MON-DD') as DAY
from adtdealers.transaction t
where t.DATECREATED between '01-oct-17' and '01-nov-17'
group by t.QUALIFIEDORGUNITCODE, t.DATECREATED;
答案 0 :(得分:0)
如果您使用select distinct
,则几乎不需要group by
。我想你只是打算:
select to_char(t.DATECREATED, 'MON-DD') as DAY,
count(distinct t.TRANSACTIONID) as TRANSACTION_VOLUME,
t.QUALIFIEDORGUNITCODE as DEALERNUMBER
from adtdealers.transaction t
where t.DATECREATED between date '2017-10-01' and date '2017-11-01'
group by to_char(t.DATECREATED, 'MON-DD'), t.QUALIFIEDORGUNITCODE;
请注意,我更改了日期文字以使用date
关键字的ISO标准格式。
答案 1 :(得分:0)
在select语句中只有一次可以使用distinct。