Как я пишу запрос, который производит номер строки как столбец?

С помощью tidyverse вы можете сделать:

df %>%
 group_by(box_num) %>%
 mutate_at(vars(x:y), funs(ifelse(. %in% subset(rle(sort(.))$values, rle(sort(.))$length > 1), NA, .)))

  box_num date           x     y
  <fct>   <fct>      <dbl> <dbl>
1 6-WQ    2018-11-18  20.2  8.00
2 6-WQ    2018-11-25  NA    7.20
3 6-WQ    2018-12-2   NA   23.0 
4 25-LR   2018-11-18 375.   4.30
5 25-LR   2018-11-25  NA    9.30
6 25-LR   2018-12-2   NA    4.00
7 73-IU   2018-12-2   NA   NA   
8 73-IU   2018-12-9   28.0 NA   
9 73-IU   2018-12-16  NA   52.8 

Во-первых, он сортирует значения по «х» и «у» и вычисляет длину пробега равных значений. Во-вторых, он создает подмножество для тех значений, у которых длина прогона> 1. Наконец, он сравнивает, находятся ли значения в «x» и «y» в подмножестве, и если да, то они получают NA.

13
задан nearly_lunchtime 13 January 2009 в 11:05
поделиться

3 ответа

SELECT ROW_NUMBER() OVER (ORDER BY beatle_name ASC) AS ROWID, * FROM beatles
27
ответ дан 1 December 2019 в 20:58
поделиться

Проверьте row_number () функция; необходимо смочь сделать это в DB2 через:

SELECT row_number(), first_name FROM beatles

Я почти уверен, что это не часть стандарта SQL, хотя, таким образом, это вряд ли будет портативно, должен тот когда-либо быть проблемой.

1
ответ дан 1 December 2019 в 20:58
поделиться
SELECT ROW_NUMBER() OVER(ORDER BY BEATLE_NAME) ROWNUM,BEATLE_NAME FROM BEATLES;
0
ответ дан 1 December 2019 в 20:58
поделиться
Другие вопросы по тегам:

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