Guida di riferimento per il rapporto della dashboard Admin

:bookmark: Questa è una guida di riferimento per descrivere il funzionamento dei Report della Dashboard di Amministrazione, i dati che visualizzano, le corrispondenti query SQL di Data Explorer e dove trovare il codice Ruby per ogni report.

:person_raising_hand: Livello utente richiesto: Staff

Discourse include diversi Report della Dashboard di Amministrazione integrati che possono essere utili per esplorare le statistiche di una community. Per accedere a questi report, puoi visitare discourse.example.com/admin/dashboard/reports sul tuo sito (oppure fare clic sul link Report in alto nella dashboard). Tieni presente che solo gli utenti dello staff avranno accesso a questi report.

I dati di tutti gli utenti di un sito sono inclusi in questi report (inclusa l’attività dello staff come la visita alle pagine di amministrazione). L’unica condizione applicata agli utenti nei report è che siano utenti ‘reali’, il che serve a escludere l’utente system dai report.

I plugin possono anche aggiungere report alla dashboard con add_report(name, &block).

:gem: I modelli Ruby per la maggior parte dei report si trovano in: discourse/app/models/concerns/reports/. Alcuni report fanno anche riferimento a: discourse/app/models/report.rb

:bulb: I topic dashboard-sql contengono tutte le corrispondenti query SQL che possono essere utilizzate per generare report identici ai Report della Dashboard di Amministrazione. Queste query possono essere utilizzate all’interno del plugin Data Explorer e per Eseguire query di Data Explorer con l’API di Discourse

:wrench: Per nascondere report specifici dalla dashboard, utilizza l’impostazione del sito dashboard_hidden_reports.

Soluzioni accettate

Visualizza il conteggio giornaliero dei post contrassegnati come soluzioni.

Codice Ruby: discourse-solved/plugin.rb at main · discourse/discourse-solved · GitHub

Query SQL: Dashboard Report - Accepted Solutions

Accessi degli amministratori

Elenco degli orari di accesso degli amministratori con le località.

Codice Ruby: discourse/app/models/concerns/reports/staff_logins.rb

Query SQL: Dashboard Report - Admin Logins

Anonimi

Numero di nuove visualizzazioni di pagine da visitatori non collegati a un account.

Codice Ruby: discourse/app/models/concerns/reports/consolidated_page_views.rb

Query SQL: Dashboard Report - Anonymous

Segnalibri

Numero di nuovi argomenti e post salvati nei segnalibri.

Codice Ruby: discourse/app/models/concerns/reports/bookmarks.rb

Query SQL: Dashboard Report - Bookmarks

Richieste API consolidate

Statistiche sull’utilizzo delle API per data, che tracciano sia le richieste API regolari che quelle degli utenti.

Codice Ruby: discourse/app/models/concerns/reports/consolidated_api_requests.rb at main · discourse/discourse · GitHub

Query SQL: Dashboard Report - Consolidated API Requests

Visualizzazioni di pagine consolidate

Visualizzazioni di pagine per utenti collegati, utenti anonimi e crawler. Questo è un report legacy sostituito dal report Traffico del sito.

Codice Ruby: discourse/app/models/concerns/reports/consolidated_page_views.rb

Query SQL: Dashboard Report - Consolidated Pageviews

Visualizzazioni di pagine consolidate con rilevamento del browser (Deprecato)

Visualizzazioni di pagine per utenti collegati, utenti anonimi, crawler noti e altri. Questo report è deprecato e ora delega al report Traffico del sito.

Codice Ruby: discourse/app/models/concerns/reports/consolidated_page_views_browser_detection.rb

Query SQL: Dashboard Report - Consolidated Pageviews with Browser Detection

DAU/MAU

Numero di membri che hanno effettuato l’accesso nell’ultimo giorno diviso per il numero di membri che hanno effettuato l’accesso nell’ultimo mese – restituisce una % che indica la ‘aderenza’ della community. Punta a >20%.

Codice Ruby: discourse/app/models/concerns/reports/dau_by_mau.rb

Query SQL: Dashboard Report - DAU/MAU

Utenti coinvolti giornalieri

Numero di utenti che hanno messo ‘mi piace’ o pubblicato nell’ultimo giorno.

Codice Ruby: discourse/app/models/concerns/reports/daily_engaged_users.rb

Query SQL: Dashboard Report - Daily Engaged Users

Email inviate

Numero di nuove email inviate.

Codice Ruby: discourse/app/models/concerns/reports/emails.rb

Query SQL: Dashboard Report - Emails Sent

Segnalazioni

Numero di nuove segnalazioni.

Codice Ruby: discourse/app/models/concerns/reports/flags.rb

Query SQL: Dashboard Report - Flags

Stato delle segnalazioni

Elenco degli stati delle segnalazioni, inclusi tipo di segnalazione, autore, segnalatore e tempo di risoluzione.

Codice Ruby: discourse/app/models/concerns/reports/flags_status.rb

Query SQL: Dashboard Report - Flags Status

Mi piace

Numero di nuovi ‘mi piace’.

Codice Ruby: discourse/app/models/concerns/reports/likes.rb

Query SQL: Dashboard Report - Likes

Collegati

Numero di nuove visualizzazioni di pagine da utenti collegati.

Codice Ruby: discourse/app/controllers/admin/reports_controller.rb#L5

Query SQL: Dashboard Report - Logged In

Attività dei moderatori

Elenco dell’attività dei moderatori, inclusi le segnalazioni esaminate, il tempo di lettura, gli argomenti creati, i post creati, i messaggi privati creati e le revisioni.

Query SQL: Dashboard Report - Moderator Activity

Avviso dei moderatori

Numero di avvisi inviati tramite messaggi privati dai moderatori.

Codice Ruby: discourse/app/models/concerns/reports/moderator_warning_private_messages.rb

Query SQL: Dashboard Report - Moderator Warnings

Nuovi contributori

Numero di utenti che hanno pubblicato il loro primo post durante questo periodo.

Codice Ruby: discourse/app/models/concerns/reports/new_contributors.rb

Query SQL: Dashboard Report - New Contributors

Notifica ai moderatori

Numero di volte in cui i moderatori sono stati notificati privatamente da una segnalazione.

Codice Ruby: discourse/app/models/concerns/reports/notify_moderators_private_messages.rb

Query SQL: Dashboard Report - Notify Moderators

Notifica all’utente

Numero di volte in cui gli utenti sono stati notificati privatamente da una segnalazione.

Codice Ruby: discourse/app/models/concerns/reports/notify_user_private_messages.rb

Query SQL: Dashboard Report - Notify User

Sentiment complessivo

Numero di post classificati come positivi o negativi dall’IA “Sentiment”, in un periodo specificato.

Codice Ruby: discourse-ai/lib/sentiment/entry_point.rb at main · discourse/discourse-ai · GitHub

Query SQL: Report Dashboard - Sentiment complessivo

Visualizzazioni di pagine

Numero di nuove visualizzazioni di pagine da tutti i visitatori. Uguale al totale di Visualizzazioni di pagine consolidate.

Discourse utilizza la seguente query per determinare il totale delle visualizzazioni di pagine:

Query SQL: Dashboard Report - Consolidated Pageviews

Modifiche ai post

Numero di nuove modifiche ai post.

Codice Ruby: discourse/app/models/concerns/reports/post_edits.rb

Query SQL: Dashboard Report - Post Edits

Post

Nuovi post creati durante il periodo selezionato.

Codice Ruby: discourse/app/models/concerns/reports/posts.rb

Query SQL: Dashboard Report - Posts

Emozione del post

Numero di post classificati dall’IA con una delle seguenti emozioni: Tristezza, Sorpresa, Paura, Rabbia, Gioia, Disgusto - raggruppati per livello di fiducia dell’autore, in un periodo specificato.

Codice Ruby: discourse-ai/lib/sentiment/entry_point.rb at main · discourse/discourse-ai · GitHub

Query SQL: Report Dashboard - Emozione del post

Reazioni

Elenco delle reazioni più recenti.

Codice Ruby: discourse-reactions/plugin.rb at main · discourse/discourse-reactions · GitHub

Query SQL: Dashboard Report - Reactions

Iscrizioni

Nuove registrazioni di account per questo periodo.

Codice Ruby: discourse/app/models/concerns/reports/signups.rb

Query SQL: Dashboard Report - Signups

Traffico del sito

Visualizzazioni di pagine per browser collegati, browser anonimi, crawler e altro traffico. Questo è il report di traffico principale, che sostituisce i vecchi report di Visualizzazioni di pagine consolidate.

Codice Ruby: discourse/app/models/concerns/reports/site_traffic.rb

Query SQL: Report Dashboard - Traffico del sito

Accessi sospetti

Dettagli di nuovi accessi che differiscono in modo sospetto dagli accessi precedenti.

Codice Ruby: discourse/app/models/concerns/reports/suspicious_logins.rb

Query SQL: Dashboard Report - Suspicious Logins

Sistema

Numero di messaggi privati inviati automaticamente dal Sistema.

Codice Ruby: discourse/app/models/concerns/reports/system_private_messages.rb

Query SQL: Dashboard Report - System

Tempo alla prima risposta

Tempo medio (in ore) della prima risposta ai nuovi argomenti.

Codice Ruby: discourse/app/models/concerns/reports/time_to_first_response.rb + discourse/discourse/blob/main/app/models/topic.rb#L1799-L1844

Query SQL: Dashboard Report - Time to First Response

Utenti ignorati/mutati più frequenti

Utenti che sono stati mutati e/o ignorati da molti altri utenti.

Codice Ruby: discourse/app/models/concerns/reports/top_ignored_users.rb

Query SQL: Dashboard Report - Top Ignored / Muted Users

Argomenti con più riferimenti esterni

Argomenti che hanno ricevuto il maggior numero di clic da fonti esterne.

Codice Ruby: discourse/app/models/concerns/reports/top_referred_topics.rb

Query SQL: Dashboard Report - Top Referred Topics

Principali referenti

Utenti elencati in base al numero di clic sui link che hanno condiviso.

Codice Ruby: discourse/app/models/concerns/reports/top_referrers.rb

Query SQL: Dashboard Report - Top Referrers

Principali fonti di traffico

Fonti esterne che hanno linkato a questo sito più frequentemente.

Codice Ruby: discourse/app/models/concerns/reports/top_traffic_sources.rb

Query SQL: Dashboard Report - Top Traffic Sources

Principali caricamenti

Elenco di tutti i caricamenti per estensione, dimensione del file e autore.

Codice Ruby: discourse/app/models/concerns/reports/top_uploads.rb

Query SQL: Dashboard Report - Top Uploads

Principali utenti per ‘mi piace’ ricevuti

I primi 10 utenti che hanno ricevuto ‘mi piace’.

Codice Ruby: discourse/app/models/concerns/reports/top_users_by_likes_received.rb

Query SQL: Dashboard Report - Top Users by Likes Received

Principali utenti per ‘mi piace’ ricevuti da un utente con un livello di fiducia inferiore

I primi 10 utenti con un livello di fiducia superiore che hanno ricevuto ‘mi piace’ da persone con un livello di fiducia inferiore.

Codice Ruby: discourse/app/models/concerns/reports/top_users_by_likes_received_from_inferior_trust_level.rb

Query SQL: Dashboard Report - Top Users by Likes Received from a User with a Lower Trust Level

Principali utenti per ‘mi piace’ ricevuti da una varietà di persone

I primi 10 utenti che hanno ricevuto ‘mi piace’ da una vasta gamma di persone.

Codice Ruby: discourse/app/models/concerns/reports/top_users_by_likes_received_from_a_variety_of_people.rb

Query SQL: Dashboard Report - Top Users by Likes Received From a Variety of People

Argomenti

Nuovi argomenti creati durante questo periodo.

Codice Ruby: discourse/app/models/concerns/reports/topics.rb

Query SQL: Dashboard Report - Topics

Argomenti senza risposta

Numero di nuovi argomenti creati che non hanno ricevuto una risposta.

Codice Ruby: discourse/app/models/concerns/reports/topics_with_no_response.rb

Query SQL: Dashboard Report - Topics with No Response

Statistiche di visualizzazione degli argomenti

I primi 100 argomenti per visualizzazioni con suddivisione tra anonimi e utenti collegati, filtrabili per categoria.

Codice Ruby: discourse/app/models/concerns/reports/topic_view_stats.rb

Query SQL: Report Dashboard - Statistiche di visualizzazione degli argomenti

Termini di ricerca di tendenza

Termini di ricerca più popolari con i relativi tassi di clic.

Codice Ruby: discourse/app/models/concerns/reports/trending_search.rb

Query SQL: Dashboard Report - Trending Search Terms

Crescita del livello di fiducia

Numero di utenti che hanno aumentato il loro Livello di Fiducia durante questo periodo.

Il report sulla Crescita del Livello di Fiducia estrae dati dalla tabella user_histories nel database di Discourse. Nello specifico, questo report conta il numero di volte in cui viene registrato un user_histories.action per un aumento del livello di fiducia di un utente.

Codice Ruby: discourse/app/models/concerns/reports/trust_level_growth.rb

Query SQL: Dashboard Report - Trust Level Growth

Politiche non accettate

Questo report della dashboard identifica gli argomenti con politiche che non sono state accettate da determinati utenti.

Codice Ruby: discourse-policy/plugin.rb at main · discourse/discourse-policy · GitHub

Query SQL: Dashboard Report - Unaccepted Policies

Rapporto di segnalazione degli utenti

Elenco degli utenti ordinati in base al rapporto tra la risposta dello staff alle loro segnalazioni (in disaccordo rispetto a d’accordo).

Codice Ruby: discourse/app/models/concerns/reports/user_flagging_ratio.rb

Query SQL: Dashboard Report - User Flagging Ratio

Note utente

Elenco delle note utente più recenti.

Codice Ruby: discourse-user-notes/plugin.rb at main · discourse/discourse-user-notes · GitHub

Query SQL: Dashboard Report - User Notes

Visualizzazioni del profilo utente

Totale nuove visualizzazioni dei profili utente.

Codice Ruby: discourse/app/models/concerns/reports/profile_views.rb

Query SQL: Dashboard Report - User Profile Views

Visite utente

Il numero totale di visite di utenti collegati al forum per il periodo selezionato (oggi, ieri, ultimi 7 giorni, ecc.).

Una visita utente viene conteggiata ogni volta che un utente unico collegato visita il sito, fino a una volta al giorno. Ad esempio, se un utente ha visitato un sito ogni giorno per una settimana, Discourse conterrebbe ciò come 7 visite utente.

Codice Ruby: discourse/app/models/concerns/reports/visits.rb

Query SQL: Dashboard Report - User Visits

Visite utente (mobile)

Numero di utenti unici collegati che hanno visitato utilizzando un dispositivo mobile.

Codice Ruby: discourse/app/models/concerns/reports/mobile_visits.rb

Query SQL: Dashboard Report - User Visits

Da utente a utente (escludendo le risposte)

Numero di nuovi messaggi privati avviati.

Codice Ruby: discourse/app/models/concerns/reports/user_to_user_private_messages.rb

Query SQL: Dashboard Report - User-to-User

Da utente a utente (con risposte)

Numero di tutti i nuovi messaggi privati e risposte.

Codice Ruby: discourse/app/models/concerns/reports/user_to_user_private_messages_with_replies.rb

Query SQL: Dashboard Report - User-to-User

Utenti per livello di fiducia

Numero di utenti raggruppati per livello di fiducia.

Codice Ruby: discourse/app/models/concerns/reports/users_by_trust_level.rb

Query SQL: Dashboard Report - Users Per Trust Level

Utenti per tipo

Numero di utenti raggruppati per amministratore, moderatore, sospeso e silenziato.

Codice Ruby: discourse/app/models/concerns/reports/users_by_type.rb

Query SQL: Dashboard Report - Users Per Type

Visualizzazioni di pagine dei crawler web

Totale visualizzazioni di pagine da crawler web nel tempo.

Codice Ruby: discourse/app/models/report.rb

Query SQL: Dashboard Report - Web Crawler Pageviews

User agent dei crawler web

Elenco degli user agent dei crawler web, ordinati per visualizzazioni di pagine.

Codice Ruby: discourse/app/models/concerns/reports/web_crawlers.rb

Query SQL: Dashboard Report - Web Crawler User Agents

18 Mi Piace

Non vedo un link a questo su /admin. Sto sbagliando a leggere? Sembrerebbe che questo dovrebbe essere più facile da trovare. Penso di aver saputo che questi report erano qui ma ho cercato e non sono riuscito a trovarli.

Anche se mi ci sono voluti solo pochi minuti per trovarli, potrebbe essere utile aggiungere qualcosa come

3 Mi Piace

Sì, potrebbe essere carino in un PM allo staff menzionarli quando un sito viene creato per la prima volta. :thinking:

1 Mi Piace

:crying_cat_face:

Mi dispiace. Pensavo sicuramente di averlo già visto da qualche parte.

Non si riesce a far leggere le cose alle persone… . . . A meno che non possa leggere il codice sorgente per scoprire come farlo in un plugin?

Ma forse aggiornare quanto sopra a

Penso che questo sia ciò che mi ha davvero confuso. (Ma no, non ho scuse.)

Ho reso il topic un wiki, vai! :+1:

2 Mi Piace

Ciò non corrisponde all’interfaccia utente (l’interfaccia utente utilizza il 20%), quale dovrebbe essere?

2 Mi Piace

Ottima osservazione. È stato recentemente aggiornato al 20%. Apporterò la modifica nell’OP. :slight_smile: :+1:

2 Mi Piace

Ciao @SaraDev È possibile ottenere l’output di questo report con una query SQL? Puoi condividerla?
Grazie

1 Mi Piace

Sì, puoi usare il seguente report SQL per le principali fonti di traffico:

-- [params]
-- date :start_date = 01/05/2023
-- date :end_date = 03/06/2023

WITH count_links AS (

SELECT COUNT(*) AS clicks,
       ind.name AS domain
FROM incoming_links il
  INNER JOIN posts p ON p.deleted_at ISNULL AND p.id = il.post_id
  INNER JOIN topics t ON t.deleted_at ISNULL AND t.id = p.topic_id
  INNER JOIN incoming_referers ir ON ir.id = il.incoming_referer_id
  INNER JOIN incoming_domains ind ON ind.id = ir.incoming_domain_id
WHERE t.archetype = 'regular'
  AND il.created_at::date BETWEEN :start_date AND :end_date
GROUP BY ind.name
ORDER BY clicks DESC
),

count_topics AS (

SELECT COUNT(DISTINCT p.topic_id) AS topics,
       ind.name AS domain
FROM incoming_links il
INNER JOIN posts p ON p.deleted_at ISNULL AND p.id = il.post_id
INNER JOIN topics t ON t.deleted_at ISNULL AND t.id = p.topic_id
INNER JOIN incoming_referers ir ON ir.id = il.incoming_referer_id
INNER JOIN incoming_domains ind ON ind.id = ir.incoming_domain_id
WHERE t.archetype = 'regular'
  AND il.created_at > (CURRENT_TIMESTAMP - INTERVAL '30 DAYS')
GROUP BY ind.name
)

SELECT cl.domain,
       cl.clicks AS "Clicks",
       ct.topics AS "Topics"
FROM count_links cl
JOIN count_topics ct ON cl.domain = ct.domain
LIMIT 10

Con questa query, nota che i parametri di data accettano date nel formato giorno/mese/anno.

1 Mi Piace

Ciao @SaraDev, grazie per aver condiviso la query.
Una domanda più generale riguardo a questo report e alla tabella incoming_links in realtà: rappresenta solo il traffico per le pagine dei post e non il traffico verso tutte le pagine del forum, giusto?

Contesto: sto cercando di analizzare le tendenze del traffico generale del forum e speravo di ottenere il traffico generale per origini dal report delle principali origini del traffico.
Ma mentre il traffico generale è di circa 272K nell’ultimo mese (utenti e anonimi), i click totali nel report delle origini del traffico per lo stesso periodo sono solo 59K.
Inoltre, vedo che utilizzi un inner join con le tabelle topics e posts, il che significa che se non c’è un post_id associato al click, non lo conti.

Puoi per favore confermare la mia conclusione e magari spiegare un po’ la logica dietro la tabella incoming_links?

Ciao @SaraDev ho eseguito questa query e il risultato non corrisponde esattamente al report Post nella scheda generale.
Ad esempio per il 30 novembre:
Query = 112 post
Report = 120 post
Puoi controllare la differenza?
Grazie

1 Mi Piace

Solo per tua informazione @Yotam_Hagay - anche se Sara è l’OP, la guida è responsabilità di tutti :slight_smile: :discourse: Non c’è bisogno di una @mention su ogni post. :slight_smile:

2 Mi Piace

Grazie @JammyDodger per il chiarimento.
C’è qualcun altro che posso taggare o a cui posso rivolgermi per ottenere una risposta?

1 Mi Piace

I risultati di questa query sono leggermente diversi dal report Time to first response:
L’8 novembre, ad esempio:
Query: 93 ore
Report: 116 ore
Qualcuno può darmi un consiglio?

1 Mi Piace

Penso che alcune di queste potrebbero richiedere del tempo per essere ricercate. Ci sto dando un’occhiata anch’io per vedere se riesco a capire cosa sta succedendo (anche se il divario tra le mie competenze SQL e le mie competenze Ruby è piuttosto ampio :slight_smile:).

Ma continua a fornire i risultati in quanto sarebbe fantastico consolidare tutte queste informazioni. :+1:

2 Mi Piace

Per quello dei post, penso che il report di magazzino conti anche i post degli argomenti e quelli degli utenti di sistema, ma si rivolge solo a quelli con post_type 1 (cioè, non sussurri, piccoli post di azione o azioni del moderatore).

Penso che l’SQL dovrebbe essere più simile a questo:

--[params]
-- date :start_date
-- date :end_date

SELECT
    p.created_at::date AS "Giorno",
    COUNT(p.id) AS "Conteggio"
FROM posts p
INNER JOIN topics t ON t.id = p.topic_id AND t.deleted_at ISNULL
WHERE p.created_at::date BETWEEN :start_date AND :end_date
    AND p.deleted_at ISNULL
    AND t.archetype = 'regular'
    AND p.post_type = 1
GROUP BY p.created_at::date
ORDER BY 1

Potresti eseguirlo sul tuo sito e vedere se corrisponde?

2 Mi Piace

Grazie Jammy, controllerò!
Sto attualmente lavorando su un’analisi del tempo di prima risposta, quindi apprezzerei se potessi dare un’occhiata anche a questa.

1 Mi Piace

Guardando la versione SQL, penso che manchi AND p.user_id <> t.user_id per escludere le risposte dall’OP. Se lo aggiungo, ottengo il tempo accurato tra l’OP e la prima risposta di qualcun altro:

--[params]
-- date :date_start
-- date :date_end

WITH first_reply AS (
    SELECT 
        p.topic_id, 
        MIN(post_number) post_number, 
        t.created_at
    FROM posts p
    INNER JOIN topics t ON (p.topic_id = t.id)
    WHERE p.deleted_at IS NULL
        AND p.user_id <> t.user_id
        AND p.post_number != 1
        AND p.post_type = 1
        AND p.user_id > 0
        AND t.user_id > 0
        AND t.deleted_at IS NULL
        AND t.archetype = 'regular'
        AND t.created_at::date BETWEEN :date_start AND :date_end
    GROUP BY p.topic_id, t.created_at
    ORDER BY 2 DESC
)

SELECT 
    p.topic_id, 
    fr.created_at::date dt_topic_created,
    (p.created_at - fr.created_at) response_time
FROM posts p
INNER JOIN first_reply fr 
    ON fr.topic_id = p.topic_id 
    AND fr.post_number = p.post_number
    AND p.created_at > fr.created_at
ORDER BY response_time

Penso anche che il report di magazzino sia in decimale anziché in ore e minuti come l’SQL. Ci riproverò per farlo corrispondere. :+1:


Solo un piccolo aggiornamento per includere AVG in modo che sia più simile all’output del report di magazzino:

--[params]
-- date :date_start
-- date :date_end

WITH first_reply AS (
    SELECT 
        p.topic_id, 
        MIN(post_number) post_number, 
        t.created_at
    FROM posts p
    INNER JOIN topics t ON p.topic_id = t.id
    WHERE p.deleted_at IS NULL
        AND p.user_id <> t.user_id
        AND p.post_type = 1
        AND p.user_id > 0
        AND t.user_id > 0
        AND t.deleted_at IS NULL
        AND t.archetype = 'regular'
        AND t.created_at::date BETWEEN :date_start AND :date_end
    GROUP BY p.topic_id, t.created_at
)

SELECT 
    fr.created_at::date dt_topic_created,
    AVG(p.created_at - fr.created_at) response_time
FROM posts p
INNER JOIN first_reply fr 
    ON fr.topic_id = p.topic_id 
    AND fr.post_number = p.post_number
    AND p.created_at > fr.created_at
GROUP BY fr.created_at::date
ORDER BY response_time

Questo sembra corrispondere al report di magazzino, purché si tenga conto che uno è in decimale e l’altro in HH:MM. Sono sicuro che ci sia un modo per convertire il response_time SQL in decimale, ma HH:MM sembra un modo più intuitivo per farlo. (Penso che ci siano anche alcuni criteri aggiuntivi che potrebbero non essere necessari, ma potrebbero anche essere una protezione contro circostanze insolite, quindi alla fine ho lasciato quelle parti così come sono finché non potrò dirlo con certezza :slight_smile:)

Potresti eseguirlo e vedere come corrisponde?

4 Mi Piace

Sì, ora corrisponde ai numeri mostrati nel report di magazzino, grazie!
Solo un commento:
Ho scoperto che la funzione AVG sottostante restituisce risultati mancanti nel caso in cui il tempo sia > 24 ore (manca una sezione # di giorni, immagino).

AVG(p.created_at - fr.created_at)::time response_time

1 Mi Piace

Sì, il casting a time è stata una scelta sbagliata. :slight_smile: Se rimuovi ::time, tornerà alla versione più accurata (anche se più difficile da leggere).

Modificherò anche quella sopra. :+1:

2 Mi Piace