added file for generating table with 5 best times from each map
This commit is contained in:
		
							parent
							
								
									d1de5f6015
								
							
						
					
					
						commit
						d89ce6f0fd
					
				
							
								
								
									
										55
									
								
								RaceTimer/python3/generate_top_5_times_query.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								RaceTimer/python3/generate_top_5_times_query.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,55 @@
 | 
				
			|||||||
 | 
					from settings import get_connection_racetimer
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					def main():
 | 
				
			||||||
 | 
					    with get_connection_racetimer() as conn:
 | 
				
			||||||
 | 
					        with conn.cursor(buffered=True) as cur:
 | 
				
			||||||
 | 
					            sql_statement = """
 | 
				
			||||||
 | 
					                select column_name from information_schema.columns
 | 
				
			||||||
 | 
					                where table_schema = 'unloze_racetimer_css'
 | 
				
			||||||
 | 
					                and TABLE_NAME = 'zetimer_table_new'
 | 
				
			||||||
 | 
					                order by table_name,ordinal_position
 | 
				
			||||||
 | 
					            """
 | 
				
			||||||
 | 
					            cur.execute(sql_statement)
 | 
				
			||||||
 | 
					            res = cur.fetchall()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            #removing steamid and name
 | 
				
			||||||
 | 
					            res.pop(0)
 | 
				
			||||||
 | 
					            res.pop(0)
 | 
				
			||||||
 | 
					            sql_statement = "TRUNCATE TABLE unloze_racetimer_css.top5"
 | 
				
			||||||
 | 
					            cur.execute(sql_statement)
 | 
				
			||||||
 | 
					            for index, result in enumerate(res):
 | 
				
			||||||
 | 
					                result = result[0]
 | 
				
			||||||
 | 
					                sql_statement = f"""alter table unloze_racetimer_css.top5
 | 
				
			||||||
 | 
					                    add column if not exists {result} DOUBLE """
 | 
				
			||||||
 | 
					                cur.execute(sql_statement)
 | 
				
			||||||
 | 
					                if index == 0:
 | 
				
			||||||
 | 
					                    sql_statement = f"""
 | 
				
			||||||
 | 
					                        insert into unloze_racetimer_css.top5 ({result})
 | 
				
			||||||
 | 
					                        SELECT t2.{result}
 | 
				
			||||||
 | 
					                         FROM unloze_racetimer_css.zetimer_table_new t2
 | 
				
			||||||
 | 
					                             WHERE 
 | 
				
			||||||
 | 
					                                t2.{result} > 0
 | 
				
			||||||
 | 
					                             ORDER BY t2.{result} ASC
 | 
				
			||||||
 | 
					                         LIMIT 5
 | 
				
			||||||
 | 
					                    """
 | 
				
			||||||
 | 
					                else:
 | 
				
			||||||
 | 
					                    sql_statement = f"""
 | 
				
			||||||
 | 
					                        update unloze_racetimer_css.top5 t             
 | 
				
			||||||
 | 
					                         INNER JOIN (
 | 
				
			||||||
 | 
					                            SELECT
 | 
				
			||||||
 | 
					                                {result},
 | 
				
			||||||
 | 
					                                ROW_NUMBER() OVER (ORDER BY {result} ASC) AS row_num
 | 
				
			||||||
 | 
					                            FROM unloze_racetimer_css.zetimer_table_new
 | 
				
			||||||
 | 
					                            WHERE {result} > 0
 | 
				
			||||||
 | 
					                            limit 5
 | 
				
			||||||
 | 
					                        ) t2 ON t.id = t2.row_num
 | 
				
			||||||
 | 
					                         set t.{result} = t2.{result}      
 | 
				
			||||||
 | 
					                         where t.id = t2.row_num
 | 
				
			||||||
 | 
					                    """
 | 
				
			||||||
 | 
					                cur.execute(sql_statement)
 | 
				
			||||||
 | 
					            conn.commit()
 | 
				
			||||||
 | 
					        conn.close()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					if __name__ == '__main__':
 | 
				
			||||||
 | 
					    main()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user