如何计算 SQL 中的文本?
How to have count text like in SQL?
如何像 SQL 中那样计数文本?
IF OBJECT_ID('tempdb..#t') IS NOT NULL
DROP TABLE #t
Create table #t (message nvarchar(4000), messagedate datetime)
insert into #t values ('Column Listing have data error', getdate())
WAITFOR DELAY '00:00:00:02';
insert into #t values ('Column Listing have name error', getdate())
WAITFOR DELAY '00:00:00:02';
insert into #t values ('Column Listing have city error', getdate())
select * from #t
select count(message like 'column%') , max(messagedate) from #t
group by message
把逻辑部分放到子查询里,然后算在主查询里..
SELECT Message, COUNT(Message) as MessageCount, MAX(MessageDate) as MaxMessageDate
FROM (SELECT Message, messagedate FROM #t WHERE Message LIKE 'column%') a
GROUP BY Message
使用条件聚合,但我看不到应该在哪里使用分组:
select
sum(case when message like 'column%' then 1 else 0 end) counter,
max(messagedate) maxdate
from #t
如果您还只希望消息的最大日期类似于 'column%':
select
count(*) counter,
max(messagedate) maxdate
from #t
where message like 'column%'
参见demo。
结果:
> counter | maxdate
> ------: | :------------------
> 3 | 16/04/2019 16:50:25
如何像 SQL 中那样计数文本?
IF OBJECT_ID('tempdb..#t') IS NOT NULL
DROP TABLE #t
Create table #t (message nvarchar(4000), messagedate datetime)
insert into #t values ('Column Listing have data error', getdate())
WAITFOR DELAY '00:00:00:02';
insert into #t values ('Column Listing have name error', getdate())
WAITFOR DELAY '00:00:00:02';
insert into #t values ('Column Listing have city error', getdate())
select * from #t
select count(message like 'column%') , max(messagedate) from #t
group by message
把逻辑部分放到子查询里,然后算在主查询里..
SELECT Message, COUNT(Message) as MessageCount, MAX(MessageDate) as MaxMessageDate
FROM (SELECT Message, messagedate FROM #t WHERE Message LIKE 'column%') a
GROUP BY Message
使用条件聚合,但我看不到应该在哪里使用分组:
select
sum(case when message like 'column%' then 1 else 0 end) counter,
max(messagedate) maxdate
from #t
如果您还只希望消息的最大日期类似于 'column%':
select
count(*) counter,
max(messagedate) maxdate
from #t
where message like 'column%'
参见demo。
结果:
> counter | maxdate
> ------: | :------------------
> 3 | 16/04/2019 16:50:25