Here is an example to show you the difference
library(dplyr)
#>
#> Attachement du package : 'dplyr'
#> The following objects are masked from 'package:stats':
#>
#> filter, lag
#> The following objects are masked from 'package:base':
#>
#> intersect, setdiff, setequal, union
mtcars$cyl[5] <- NA
gp_df <- mtcars %>%
mutate(dummy_cat_for_reprex = rep_len(c("dummy1", "dummy2"), n())) %>%
group_by(dummy_cat_for_reprex)
gp_df %>%
summarise(mean = mean(cyl, na.rm = T),
sd = sd(cyl, na.rm = T),
N = n(),
N_without_NA = sum(!is.na(cyl)))
#> # A tibble: 2 x 5
#> dummy_cat_for_reprex mean sd N N_without_NA
#> <chr> <dbl> <dbl> <int> <int>
#> 1 dummy1 6.4 1.88 16 15
#> 2 dummy2 5.88 1.71 16 16
gp_df %>%
tally(wt = !is.na(cyl))
#> # A tibble: 2 x 2
#> dummy_cat_for_reprex n
#> <chr> <int>
#> 1 dummy1 15
#> 2 dummy2 16
gp_df %>%
add_tally(wt = !is.na(cyl)) %>%
distinct(dummy_cat_for_reprex, n)
#> # A tibble: 2 x 2
#> # Groups: dummy_cat_for_reprex [2]
#> dummy_cat_for_reprex n
#> <chr> <int>
#> 1 dummy1 15
#> 2 dummy2 16
Created on 2019-01-21 by the reprex package (v0.2.1)
Your add_tally does not work because the table is already summarise.
For what you want to do the sum is ok I think.