Я работаю над рефакторингом моего кода. И я пытаюсь получить результат скрипта Python в одном запросе.
Я пытался сделать это:
select year(created), month(created), count(*) as total_id
from repository_clinicaltrial
group by id, year(created), month(created)
order by id, year(created), month(created);
чтобы получить количество идентификаторов каждого МЕСЯЦА.
Используя python, я делаю так:
dic_months = {1: "jan",
2: "fev",
3: "mar",
4: "abr",
5: "mai",
6: "jun",
7: "jul",
8: "ago",
9: "set",
10: "out",
11: "nov",
12: "dez"
}
def retorna_dic_report(yearI):
yearN = yearI + 1
query_report = 'select created from repository_clinicaltrial where created >= "%s-01-01" and created < "%s-01-01";' % (yearI,
yearN)
db = MySQLdb.connect(host= host,
user= user,
passwd= pass,
db= db)
cur = db.cursor()
cur.execute(query_report)
dic_result = {}
for row in cur.fetchall():
try:
dic_result[dic_months[row[0].month]] = dic_result[dic_months[row[0].month]] + 1
except:
if row[0].month == 12:
dic_result[dic_months[row[0].month]] = 1
return dic_result
Я хочу использовать один запрос, который возвращает количество идентификаторов каждого месяца в диапазоне лет.
возможно ли это?