SQLAlchemy: Dapatkan nilai maksimum nilai terkumpul
P粉738346380
P粉738346380 2023-09-01 12:07:40
0
1
452
<p>Saya mempunyai jadual ini dalam apl Flask saya: </p> <pre class="brush:php;toolbar:false;">class Events(db.Model): id = db.Column(db.Integer, primary_key=True, autoincrement=True) timestamp_event = db.Column(db.DateTime, nullable=False)</pre> <p>Saya perlu mendapatkan hari dengan rekod terbanyak, termasuk nilai dan tarikh itu sendiri dalam format boleh cetak (cth. d/m/y). Saya mencuba kod berikut: </p> <pre class="brush:php;toolbar:false;">daily_max = db.func.max(db.session.query(db.func.count(Events.id), db.func.date_format(Events.timestamp_event,'%d/%m/%y')) .group_by(db.func.date_format(Events.timestamp_event,'%Y%M%D')))</pre> <p>Kemudian kami berharap daily_max[0] mempunyai nilai dan daily_max[1] tidak mempunyai tarikh hh:mm:ss. </p> <p>Apabila saya mencetak daily_max selepas pertanyaan, nilainya ialah: </p> <pre class="brush:php;toolbar:false;">daily_max = max((SELECT count(events.id) AS count_1, date_format(events.timestamp_event, :date_format_2) AS format_tarikh_1 DARIPADA acara KUMPULAN MENGIKUT date_format(events.timestamp_event, :date_format_3)))</pre> <p>Ini ialah sampel data. Jawapan (nilai <kod>daily_max</code>) hendaklah <strong>(3, "21/01/2022")</strong>: </p> <pre class="brush:php;toolbar:false;">id timestamp_event ---- --------------- 1 2022-01-15 12:34 2 2022-01-21 01:23 3 2022-01-21 05:33 4 2022-01-21 11:11 5 2022-01-23 00:01 6 2022-01-23:29</pra> <p>Ada sebarang petunjuk tentang apa yang saya lakukan salah? Tidak dapat mencari jawapan dalam dokumentasi. </p>
P粉738346380
P粉738346380

membalas semua(1)
P粉541565322

Ini adalah pendekatan yang tidak baik (tidak cekap):

daily_max = db.session.query(db.func.count(Events.id),
            db.func.date_format(Events.timestamp_event,'%d/%m/%y'))\
            .group_by(db.func.date_format(Events.timestamp_event,'%Y%M%D'))\
            .order_by(db.func.count(Events.id).desc()).first()

Ia mengumpulkan semua pasangan (kiraan id, tarikh), mengisih pasangan dalam susunan kiraan terbalik dan mendapat pasangan pertama.

Ia menyelesaikan tugas, tetapi saya sangat ingin mengetahui cara yang cekap dan elegan untuk menggunakan func.max().

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!