Функция в течение недели месяца в mysql

Используя melt:

u = df.melt(id_vars='ID', var_name='Attribute')
u.loc[u.value.eq('T'), ['ID', 'Attribute']]

   ID     Attribute
0   1          Male
3   2  Special_Need
4   1      Teeanger
9
задан YiSh 24 April 2009 в 09:44
поделиться

2 ответа

AFAIK, стандарт для первой недели месяца отсутствует.

Первая неделя года - это неделя, содержащая 4 января .

Как вы определяете первая неделя месяца?

ОБНОВЛЕНИЕ:

Вам нужно будет переписать ваш запрос следующим образом:

SELECT  WEEK(dateField, 5) -
        WEEK(DATE_SUB(dateField, INTERVAL DAYOFMONTH(dateField) - 1 DAY), 5) + 1

, чтобы переходы года обрабатывались правильно, а недели начинались в понедельник .

В противном случае ваш запрос в порядке.

15
ответ дан 4 December 2019 в 08:53
поделиться

Существует альтернатива, которая иногда используется в отчетных базах данных. Это создание таблицы, назовем ее ALMANAC, которая имеет одну строку на дату (ключ) и имеет каждый необходимый атрибут даты, который может быть полезен для целей отчетности.

В дополнение к столбцу «неделя месяца», может быть столбец для того, является ли дата выходным днем ​​компании и тому подобное. Если в вашей компании финансовый год начинается с июля или какого-то другого месяца, вы можете указать финансовый год, финансовый месяц, финансовую неделю и т. Д., К которым относится каждая дата.

Затем вы пишете одну программу для заполнения этой таблицы. из воздуха, учитывая диапазон дат для заселения. Вы включаете все сумасшедшие вычисления календаря только один раз в этой программе.

Затем, когда вам нужно узнать атрибут для даты в какой-то другой таблице, Вы просто делаете соединение и используете колонку. Да, это еще одно присоединение. И нет, эта таблица не нормализована. Но это все еще хороший дизайн для определенных очень специфических потребностей.

8
ответ дан 4 December 2019 в 08:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: