update sqlc gen
This commit is contained in:
parent
bf7f344d30
commit
30e3841714
@ -390,11 +390,11 @@ FROM
|
||||
WITH TimeBucket AS (
|
||||
SELECT
|
||||
CASE
|
||||
WHEN EXTRACT(epoch FROM to_timestamp($2)) - EXTRACT(epoch FROM to_timestamp($1)) > 172800 THEN date_trunc('day', to_timestamp(time_bucket))
|
||||
ELSE date_trunc('hour', to_timestamp(time_bucket))
|
||||
WHEN EXTRACT(epoch FROM $2::timestamp) - EXTRACT(epoch FROM $1::timestamp) > 172800 THEN date_trunc('day', timestamp_bucket)
|
||||
ELSE date_trunc('hour', timestamp_bucket)
|
||||
END AS time_interval
|
||||
FROM
|
||||
generate_series(EXTRACT(epoch FROM to_timestamp($1)), EXTRACT(epoch FROM to_timestamp($2)), 3600) AS time_bucket
|
||||
generate_series($1::timestamp, $2::timestamp, '1 hour'::interval) AS timestamp_bucket
|
||||
),
|
||||
OpenStats AS (
|
||||
SELECT
|
||||
@ -410,8 +410,8 @@ WITH TimeBucket AS (
|
||||
WHERE
|
||||
answer.quiz_id = $3
|
||||
AND start = TRUE
|
||||
AND created_at >= to_timestamp($1)
|
||||
AND created_at <= to_timestamp($2)
|
||||
AND created_at >= $1::timestamp
|
||||
AND created_at <= $2::timestamp
|
||||
GROUP BY
|
||||
session
|
||||
) AS first_starts
|
||||
@ -434,8 +434,8 @@ WITH TimeBucket AS (
|
||||
WHERE
|
||||
answer.quiz_id = $3
|
||||
AND result = TRUE
|
||||
AND created_at >= to_timestamp($1)
|
||||
AND created_at <= to_timestamp($2)
|
||||
AND created_at >= $1::timestamp
|
||||
AND created_at <= $2::timestamp
|
||||
GROUP BY
|
||||
session
|
||||
) AS first_results
|
||||
@ -458,20 +458,20 @@ WITH TimeBucket AS (
|
||||
a.quiz_id = $3
|
||||
AND a.result = TRUE
|
||||
AND b.start = TRUE
|
||||
AND a.created_at >= to_timestamp($1)
|
||||
AND a.created_at <= to_timestamp($2)
|
||||
AND a.created_at >= $1::timestamp
|
||||
AND a.created_at <= $2::timestamp
|
||||
GROUP BY
|
||||
tb.time_interval
|
||||
)
|
||||
SELECT
|
||||
to_timestamp(tb.time_interval) AS time_bucket,
|
||||
tb.time_interval AS time_bucket,
|
||||
COALESCE(os.open_count, 0) AS open_count,
|
||||
COALESCE(rs.result_count, 0) AS result_count,
|
||||
COALESCE(at.avg_time, 0) AS avg_time,
|
||||
CASE
|
||||
WHEN COALESCE(os.open_count, 0) > 0 THEN COALESCE(rs.result_count, 0) / COALESCE(os.open_count, 0)
|
||||
ELSE 0
|
||||
END AS conversion
|
||||
END AS conversion
|
||||
FROM
|
||||
TimeBucket tb
|
||||
LEFT JOIN
|
||||
|
@ -8,6 +8,7 @@ package sqlcgen
|
||||
import (
|
||||
"context"
|
||||
"database/sql"
|
||||
"time"
|
||||
|
||||
"github.com/google/uuid"
|
||||
"github.com/lib/pq"
|
||||
@ -492,11 +493,11 @@ const generalStatistics = `-- name: GeneralStatistics :many
|
||||
WITH TimeBucket AS (
|
||||
SELECT
|
||||
CASE
|
||||
WHEN EXTRACT(epoch FROM to_timestamp($2)) - EXTRACT(epoch FROM to_timestamp($1)) > 172800 THEN date_trunc('day', to_timestamp(time_bucket))
|
||||
ELSE date_trunc('hour', to_timestamp(time_bucket))
|
||||
WHEN EXTRACT(epoch FROM $2::timestamp) - EXTRACT(epoch FROM $1::timestamp) > 172800 THEN date_trunc('day', timestamp_bucket)
|
||||
ELSE date_trunc('hour', timestamp_bucket)
|
||||
END AS time_interval
|
||||
FROM
|
||||
generate_series(EXTRACT(epoch FROM to_timestamp($1)), EXTRACT(epoch FROM to_timestamp($2)), 3600) AS time_bucket
|
||||
generate_series($1::timestamp, $2::timestamp, '1 hour'::interval) AS timestamp_bucket
|
||||
),
|
||||
OpenStats AS (
|
||||
SELECT
|
||||
@ -512,8 +513,8 @@ WITH TimeBucket AS (
|
||||
WHERE
|
||||
answer.quiz_id = $3
|
||||
AND start = TRUE
|
||||
AND created_at >= to_timestamp($1)
|
||||
AND created_at <= to_timestamp($2)
|
||||
AND created_at >= $1::timestamp
|
||||
AND created_at <= $2::timestamp
|
||||
GROUP BY
|
||||
session
|
||||
) AS first_starts
|
||||
@ -536,8 +537,8 @@ WITH TimeBucket AS (
|
||||
WHERE
|
||||
answer.quiz_id = $3
|
||||
AND result = TRUE
|
||||
AND created_at >= to_timestamp($1)
|
||||
AND created_at <= to_timestamp($2)
|
||||
AND created_at >= $1::timestamp
|
||||
AND created_at <= $2::timestamp
|
||||
GROUP BY
|
||||
session
|
||||
) AS first_results
|
||||
@ -560,20 +561,20 @@ WITH TimeBucket AS (
|
||||
a.quiz_id = $3
|
||||
AND a.result = TRUE
|
||||
AND b.start = TRUE
|
||||
AND a.created_at >= to_timestamp($1)
|
||||
AND a.created_at <= to_timestamp($2)
|
||||
AND a.created_at >= $1::timestamp
|
||||
AND a.created_at <= $2::timestamp
|
||||
GROUP BY
|
||||
tb.time_interval
|
||||
)
|
||||
SELECT
|
||||
to_timestamp(tb.time_interval) AS time_bucket,
|
||||
tb.time_interval AS time_bucket,
|
||||
COALESCE(os.open_count, 0) AS open_count,
|
||||
COALESCE(rs.result_count, 0) AS result_count,
|
||||
COALESCE(at.avg_time, 0) AS avg_time,
|
||||
CASE
|
||||
WHEN COALESCE(os.open_count, 0) > 0 THEN COALESCE(rs.result_count, 0) / COALESCE(os.open_count, 0)
|
||||
ELSE 0
|
||||
END AS conversion
|
||||
END AS conversion
|
||||
FROM
|
||||
TimeBucket tb
|
||||
LEFT JOIN
|
||||
@ -585,9 +586,9 @@ FROM
|
||||
`
|
||||
|
||||
type GeneralStatisticsParams struct {
|
||||
ToTimestamp float64 `db:"to_timestamp" json:"to_timestamp"`
|
||||
ToTimestamp_2 float64 `db:"to_timestamp_2" json:"to_timestamp_2"`
|
||||
QuizID int64 `db:"quiz_id" json:"quiz_id"`
|
||||
Column1 time.Time `db:"column_1" json:"column_1"`
|
||||
Column2 time.Time `db:"column_2" json:"column_2"`
|
||||
QuizID int64 `db:"quiz_id" json:"quiz_id"`
|
||||
}
|
||||
|
||||
type GeneralStatisticsRow struct {
|
||||
@ -599,7 +600,7 @@ type GeneralStatisticsRow struct {
|
||||
}
|
||||
|
||||
func (q *Queries) GeneralStatistics(ctx context.Context, arg GeneralStatisticsParams) ([]GeneralStatisticsRow, error) {
|
||||
rows, err := q.db.QueryContext(ctx, generalStatistics, arg.ToTimestamp, arg.ToTimestamp_2, arg.QuizID)
|
||||
rows, err := q.db.QueryContext(ctx, generalStatistics, arg.Column1, arg.Column2, arg.QuizID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user