Sqlite дает значение, которое я не могу воссоздатьPython

Программы на Python
Anonymous
Sqlite дает значение, которое я не могу воссоздать

Сообщение Anonymous »

Использование django: вот некоторые значения и запрос:

Код: Выделить всё

    max_played, avg_days_last_played = get_next_song_priority_values()

# Calculate time since played using raw SQL
time_since_played_expr = RawSQL("(julianday('now') - julianday(main_song.played_at))", [])

query = Song.objects
# Annotate priority
songs_with_priority = query.annotate(
time_since_played=ExpressionWrapper(time_since_played_expr, output_field=FloatField()),
priority=(
F('rating')
- (F('count_played') / Value(max_played))
+ (F('time_since_played') / Value(avg_days_last_played))
),
).order_by('-priority')
мой журнал:

Код: Выделить всё

    logger.info(f'Next Song: {next_song}')
calculated_priority = (
next_song.rating
- (next_song.count_played / max_played)
+ (next_song.time_since_played / avg_days_last_played)
)
logger.info(f'Next Song: priority {next_song.priority:.2f} vs calc {calculated_priority:.2f}')
logger.info(f'Next Song: rating {next_song.rating:.2f}')
playd = next_song.count_played / max_played
logger.info(f'Next Song: played {playd:.2f} ({next_song.count_played} / {max_played})')
tspd = next_song.time_since_played / avg_days_last_played
logger.info(
f'Next Song: days {tspd:.2f} ({next_song.time_since_played} / {avg_days_last_played})'
)
и я получаю:

Код: Выделить всё

INFO    Next Song: 
INFO    Next Song: priority 2.73 vs calc 2.56
INFO    Next Song: rating 0.50
INFO    Next Song: played 0.17 (1 / 6)
INFO    Next Song: days 2.23 (4.043296354357153 / 1.8125720233656466)
Поэтому мое расчетное значение ниже. Все значения присутствуют:
рейтинг 0,5 — сплошной,
воспроизведение засчитывается, если 1 против 6 — сплошной,
время с момента используется из результата next_song.time_since_played .
Я использую те же значения, которые должен использовать sqlite, но мой расчет другой.

Подробнее здесь: https://stackoverflow.com/questions/790 ... t-recreate

Вернуться в «Python»