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