neo4j 类似关系型数据库row_number函数cypher写法
初始化实体数据
create (:e_test{entity_id:'a1',ip:'192.168.1.1'})
create (:e_test{entity_id:'a2',ip:'192.168.1.1'})
create (:e_test{entity_id:'a3',ip:'192.168.1.12'})
create (:e_test{entity_id:'a4',ip:'192.168.1.3'})
create (:e_test{entity_id:'a5',ip:'192.168.1.3'})
create (:e_test{entity_id:'a6',ip:'192.168.1.4'})
create (:e_test{entity_id:'a7',ip:'192.168.1.4'})
create (:e_test{entity_id:'a8',ip:'192.168.1.3'})
create (:e_test{entity_id:'a9',ip:'192.168.1.4'})
create (:e_test{entity_id:'a10',ip:'192.168.1.5'})
create (:e_test{entity_id:'a11',ip:'192.168.1.5'})
create (:e_test{entity_id:'a12',ip:'192.168.1.7'})
create (:e_test{entity_id:'a13',ip:'192.168.1.7'})
create (:e_test{entity_id:'a14',ip:'192.168.1.7'})
create (:e_test{entity_id:'a15',ip:'192.168.1.8'})
create (:e_test{entity_id:'a16',ip:'192.168.1.9'})
create (:e_test{entity_id:'a17',ip:'192.168.1.9'})
create (:e_test{entity_id:'a18',ip:'192.168.1.1'})
create (:e_test{entity_id:'a19',ip:'192.168.1.1'})
create (:e_test{entity_id:'a20',ip:'192.168.1.11'})
create (:e_test{entity_id:'a20',ip:''})
// cypher查询写法
match (n:e_test)
with n.ip as ip_addr,count(n.ip) as ipcnt
where ipcnt>1
with COLLECT([ip_addr,ipcnt]) as rows
order by rows[1] desc
WITH apoc.coll.zip(RANGE(1,SIZE(rows)),rows) AS enumerated_rows
UNWIND enumerated_rows AS er
return er[0] AS row_num,er[1][0] as ip_addr,er[1][1] as ipcnt