Я только что создал запрос, я хочу изменить его pandas python функция.
Я пробовал следующий код:
dataf_umts_car_query = 'SELECT * FROM [toolDB].[dbo].[df_umts_carrier]'
esn_umts_rnc_query = 'SELECT * FROM [toolDB].[dbo].[esn_umts_intra_sho]'
esn_umts_missing_relation_table_query = 'SELECT * FROM [toolDB].[dbo].[esn_missing_in_DF_umts]'
dataf_umts_car_df = pd.read_sql(dataf_umts_car_query, engine)
esn_umts_rnc_df = pd.read_sql(esn_umts_rnc_query, engine)
esn_umts_missing_relation_table_df = pd.read_sql(esn_umts_missing_relation_table_query, engine)
esn_umts_missing_relation_table_df['target_rnc'] = np.where(esn_umts_missing_relation_table_df['n_cell_name'].isin(dataf_umts_car_df.cell_name_umts), dataf_umts_car_df.rnc, esn_umts_rnc_df.ucell_rnc)
Но он не работает и это запрос SQL:
UPDATE [toolDB].[dbo].[esn_missing_in_DF_umts]
SET [toolDB].[dbo].[esn_missing_in_DF_umts].[target_rnc] = (CASE WHEN ESN_M_UMTS.target_vendor = 'HUA' THEN umts_carrier.rnc ELSE SHO.ucell_rnc END )
FROM [toolDB].[dbo].[esn_missing_in_DF_umts] ESN_M_UMTS
LEFT JOIN [toolDB].[dbo].[df_umts_carrier] umts_carrier ON ESN_M_UMTS.n_cell_name = umts_carrier.cell_name_umts
LEFT JOIN [toolDB].[dbo].[esn_umts_intra_sho] SHO ON ESN_M_UMTS.n_cell_name IN (SHO.urelation, SHO.ucell)
Я использовал этот запрос для огромной базы данных с миллионом строк, но он выполняет запрос навсегда.
Так что мне нужен лучший способ выполнить эту функцию или запрос такого типа.
Примечание. В таблице есть дубликаты