2016-09-30 29 views
0

我有這有很多列 我想通過對1列做組獲得的唯一的記錄 是具有約6億盧比分組在大數據,而指數

即時通訊使用的查詢數據的計數表作爲

select distinct lower(TITLE) , count(lower(TITLE)) as CountOf 
from table_name2 
where 
((LENGTH(lower(TITLE)) - LENGTH(replace(lower(TITLE), ' ', '')))+1) > 3 
HAVING COUNT(lower(TITLE))>1 
group by lower(TITLE) 

我怎樣才能做到這一點的一個有效的方式,例如,如果標題是「岩石花園區」,這是目前在TITLE場4次,然後我得到了countof - > 4

+1

只是刪除'distinct',就是這樣,我認爲 –

+0

也動'HAVING COUNT(低(TITLE))> 1'最後,組後 – MtwStark

+0

mysql或oracle? (count)(a)= count(lower(a)),length(a)= length(lower(a))) – Aleksej

回答

0

你可以試試這個:

select 
lower(TITLE) , 
count(lower(TITLE)) as CountOf 
from table_name2 
where 
REGEXP_COUNT ('asdaasd ', '\s')+1 > 3 
HAVING COUNT(TITLE)>1 
group by TITLE 
0

這應該做的伎倆:

select TITLE , count(TITLE) as CountOf 
from (
    select LOWER(title) title 
    from table_name2) t 
where TITLE like '% % % %' 
group by TITLE 
HAVING COUNT(TITLE)>1