AMcoder - javascript, python, java, html, php, sql

Cypher-ի օգտագործումը՝ ցածր վարկանիշ ունեցող ամենահայտնի ֆիլմերը գտնելու համար: Միավորել հարցումը

Ես ներկայումս փորձում եմ հարցում ստեղծել՝ օգտագործելով ֆիլմերի neo4j տվյալների հավաքածուի օրինակը: Ցանկանում եմ ընտրել շատ պիտակներով (ավելի հայտնի) ֆիլմերը, ինչպես նաև ավելի քիչ վարկանիշ ունեցող ֆիլմերը:

Ես պարզել եմ, թե ինչպես գտնել ամենատարածվածը (միջինից ավելի).

MATCH (m:MOVIE)-[r:HAS_TAG]->() 
WITH count(r) as tagnum, m.title as title_now
WITH avg(tagnum) as avgtagnum
MATCH (m:MOVIE)-[r:HAS_TAG]->() 
WITH count(r) as tagnum, m.title as title_now, avgtagnum
WHERE tagnum > avgtagnum*3
RETURN title_now, avgtagnum, tagnum 
ORDER BY  tagnum DESC

Եվ նաև ինչպես ստանալ ավելի քիչ նշում ունեցողները

MATCH ()-[r:RATED]->(m:MOVIE) 
WITH  avg(r.rating) as avgrating 
MATCH ()-[r:RATED]->(m:MOVIE) 
WITH m.title as titlemovie, avgrating, avg(r.rating) as  movierating 
WHERE movierating < avgrating/2
RETURN titlemovie, avgrating, movierating 
ORDER BY movierating ASC

ԲԱՅՑ երբ ես դրանք միավորում եմ, հարցումը երբեք չի ավարտվում:

MATCH ()-[r:RATED]->(m:MOVIE) 
WITH  avg(r.rating) as avgrating 
MATCH ()-[r:RATED]->(m:MOVIE) 
WITH m.title as titlemovie, avgrating, avg(r.rating) as  movierating 
WHERE movierating < avgrating/2
MATCH (m:MOVIE)-[r:HAS_TAG]->() 
WITH count(r) as tagnum, m.title as title_now, titlemovie, avgrating, movierating 
WITH avg(tagnum) as avgtagnum, titlemovie, avgrating, movierating 
MATCH (m:MOVIE)-[r:HAS_TAG]->() 
WITH count(r) as tagnum, m.title as title_now, avgtagnum, titlemovie, avgrating, movierating 
WHERE tagnum > avgtagnum*3
RETURN titlemovie, avgrating, movierating, avgtagnum, tagnum 
ORDER BY tagnum DESC,  movierating ASC

Հարցն այն է, թե ինչպես կարող եմ գտնել իմ 2 պահանջներին համապատասխանող ֆիլմերը. ավելի քիչ նոտա և ավելի հայտնի:

16.04.2018

Պատասխանները:


1
  1. Նախ, միջին գնահատականի օգտագործումը ձեզ կտա միջին գնահատական, ոչ թե միջին գնահատական ​​ըստ ֆիլմի:

2. MATCH (m:MOVIE)-[r:HAS_TAG]->()
WITH count(r) as tagnum, ... WITH avg(tagnum) as avgtagnum ...
Այս ծածկագիրը ձեզ չի տա պիտակների ճշգրիտ միջին թիվը՝ օրինաչափությունների համապատասխանության պատճառով միայն հաշվի առեք այն ֆիլմերը, որոնք ունեն որոշ պիտակներ (Այսպիսով, դուք կստանաք ավելի մեծ միջին թիվ, քան իրականում կա):

  1. Ինչո՞ւ օգտագործել WITH ... m.title as title_now, titlemovie երկու վերնագիր: Լավագույն ենթադրությունն այն է, որ դուք համապատասխանում եք սխալ ֆիլմին

Եթե ​​պետք է ուղղել ձեր հարցումը, ես կգրեմ այսպես.


MATCH ()-[r:RATED]->(m:MOVIE) 
WITH  m, avg(r.rating) as avgra
with avg(avgra) as avgrating
MATCH (m:MOVIE) 
WITH avg(size((m)-[:HAS_TAG]-())) as avgtagnum, avgrating
MATCH (m:MOVIE)-[r:HAS_TAG]->() 
WITH count(r) as tagnum, m.title as titlemovie, avgtagnum, avgrating, avg(r.rating) as movierating
WHERE tagnum > avgtagnum*3 and movierating < avgrating/2
RETURN titlemovie, avgrating, movierating, avgtagnum, tagnum 
ORDER BY tagnum DESC,  movierating ASC

16.04.2018
Նոր նյութեր

Օգտագործելով Fetch Vs Axios.Js-ը՝ HTTP հարցումներ կատարելու համար
JavaScript-ը կարող է ցանցային հարցումներ ուղարկել սերվեր և բեռնել նոր տեղեկատվություն, երբ դա անհրաժեշտ լինի: Օրինակ, մենք կարող ենք օգտագործել ցանցային հարցումը պատվեր ներկայացնելու,..

Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար
Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար Ինչպե՞ս հանգստացնել ձեր միտքը և աշխատեցնել ձեր պրոցեսորը: Ինչպես մնալ հանգիստ և զարգանալ ճնշման տակ...

Մեքենայի ուսուցում բանկային և ֆինանսների ոլորտում
Բարդ, խելացի անվտանգության համակարգերը և հաճախորդների սպասարկման պարզեցված ծառայությունները բիզնեսի հաջողության բանալին են: Ֆինանսական հաստատությունները, մասնավորապես, պետք է առաջ մնան կորի..

Ես AI-ին հարցրի կյանքի իմաստը, այն ինչ ասում էր, ցնցող էր:
Այն պահից ի վեր, երբ ես իմացա Արհեստական ​​ինտելեկտի մասին, ես հիացած էի այն բանով, թե ինչպես է այն կարողանում հասկանալ մարդկային նորմալ տեքստը, և այն կարող է առաջացնել իր սեփական արձագանքը դրա..

Ինչպես սովորել կոդավորումը Python-ում վագրի պես:
Սովորելու համար ծրագրավորման նոր լեզու ընտրելը բարդ է: Անկախ նրանից, թե դուք սկսնակ եք, թե առաջադեմ, դա օգնում է իմանալ, թե ինչ թեմաներ պետք է սովորել: Ծրագրավորման լեզվի հիմունքները, դրա..

C++-ի օրական բիթ(ե) | Ամենաերկար պալինդրոմային ենթաշարը
C++ #198-ի ամենօրյա բիթ(ե), Ընդհանուր հարցազրույցի խնդիր. Ամենաերկար պալինդրոմային ենթատող: Այսօր մենք կանդրադառնանք հարցազրույցի ընդհանուր խնդրին. Ամենաերկար palindromic substring...

Kydavra ICAReducer՝ ձեր տվյալների ծավալայինությունը նվազեցնելու համար
Ի՞նչ է ICAReducer-ը: ICAReducer-ն աշխատում է հետևյալ կերպ. այն նվազեցնում է նրանց միջև բարձր փոխկապակցված հատկանիշները մինչև մեկ սյունակ: Բավականին նման է PCAreducer-ին, չնայած այն..