Макросы в Studio управления SQL Server

Ответ, предоставленный rcs, работает и прост. Однако, если вы работаете с большими наборами данных и нуждаетесь в повышении производительности, существует более быстрая альтернатива:

library(data.table)
data = data.table(Category=c("First","First","First","Second","Third", "Third", "Second"), 
                  Frequency=c(10,15,5,2,14,20,3))
data[, sum(Frequency), by = Category]
#    Category V1
# 1:    First 30
# 2:   Second  5
# 3:    Third 34
system.time(data[, sum(Frequency), by = Category] )
# user    system   elapsed 
# 0.008     0.001     0.009 

Давайте сравним это с тем же, используя data.frame и выше:

data = data.frame(Category=c("First","First","First","Second","Third", "Third", "Second"),
                  Frequency=c(10,15,5,2,14,20,3))
system.time(aggregate(data$Frequency, by=list(Category=data$Category), FUN=sum))
# user    system   elapsed 
# 0.008     0.000     0.015 

И если вы хотите сохранить столбец, это синтаксис:

data[,list(Frequency=sum(Frequency)),by=Category]
#    Category Frequency
# 1:    First        30
# 2:   Second         5
# 3:    Third        34

Разница станет более заметной с более крупными наборами данных, как показывает следующий код:

data = data.table(Category=rep(c("First", "Second", "Third"), 100000),
                  Frequency=rnorm(100000))
system.time( data[,sum(Frequency),by=Category] )
# user    system   elapsed 
# 0.055     0.004     0.059 
data = data.frame(Category=rep(c("First", "Second", "Third"), 100000), 
                  Frequency=rnorm(100000))
system.time( aggregate(data$Frequency, by=list(Category=data$Category), FUN=sum) )
# user    system   elapsed 
# 0.287     0.010     0.296 

Для множественных агрегаций вы можете комбинировать lapply и .SD следующим образом

data[, lapply(.SD, sum), by = Category]
#    Category Frequency
# 1:    First        30
# 2:   Second         5
# 3:    Third        34
16
задан ProfK 15 March 2009 в 15:17
поделиться

3 ответа

Что относительно сценарий Автогорячей клавиши ?

В зависимости от сложности Ваших шаблонов, Вы могли или

  1. использование, AutoHotKey для воспроизведения нажатий клавиш, необходимых для поиска regex и замены, или
  2. , копируют шаблон в буфер обмена и управляют им непосредственно в AutoHotKey прежде, чем вставить его назад.

я уверен, что первая опция будет работать. Я не попробовал второе.

Этот вопрос дает признак того, как сценарий AutoHotKey может быть записан для прислушиваний к хордам клавиатуры.

10
ответ дан 30 November 2019 в 14:01
поделиться

При использовании 2005 SSMS вверх, он имеет в созданной поддержке шаблонов. Это не точно полноценный макрос, но не, меньше это все еще довольно полезно.

синтаксис точно, поскольку Вы показали в своем первом фрагменте кода, и Вы просто нажимаете Ctrl+Shift+M для перевода в рабочее состояние диалогового окна, которое предлагает Вам, чтобы значения вошли в Ваши биты, включенные в угловые скобки.

SQL-сервер генерирует сценарий в этом формате, если Вы щелкаете правой кнопкой по таблице и избранной "Таблице сценария как" тогда выбор или вставка, обновляете или удаляете опцию.

можно также создать собственные шаблоны или изменить один из существующих, созданных в (нажмите выставленный для обозрения-> Шаблонный проводник для получения доступа к другим встроенным шаблонам).

существует короткая статья на MSDN, который объясняет, как начать с шаблонами.

6
ответ дан 30 November 2019 в 14:01
поделиться

Первый код является шаблоном от старо-хорошего MS Query Анализатор. Ярлык на заполнение Ctrl+M (но я не уверен, возможно, это - Ctrl+Shift+M).

в более новом SSMS должна быть та же функция.

0
ответ дан 30 November 2019 в 14:01
поделиться
Другие вопросы по тегам:

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