diff --git a/2021_Projektbezogenes_Arbeiten/main.R b/2021_Projektbezogenes_Arbeiten/main.R new file mode 100644 index 0000000..880bfec --- /dev/null +++ b/2021_Projektbezogenes_Arbeiten/main.R @@ -0,0 +1,263 @@ +# Functions +process_spectral_data <- function(file_path, grouping_size = 17, exclude_index = 13, encoding = "UTF-16LE", baum_ids = NULL) { + spektren <- readLines(file(file_path, encoding = encoding)) + spektren <- gsub("\ufeff", "", spektren) + spektren <- strsplit(spektren, "\t") + wavelengths <- as.numeric(sapply(spektren, function(x) strsplit(x[1], ",")[[1]][1])) + measurements <- do.call(rbind, lapply(spektren, function(row) { + sapply(row, function(part) as.numeric(strsplit(part, ",")[[1]][2])) + })) + if (basename(file_path) == "export_20220721.dat") { + whites <- c() + for (j in 1:ncol(measurements)) { + value <- measurements[1, j] + if (!is.na(value) && floor(value) == 1) { + whites <- c(whites,j) + } + } + skipped <- c(88, 138, 139, 180, 293, 311, 312, 313, 317, 395) + fix <- c(0:11) + columns_to_remove <- unique(c(whites, skipped, fix)) + measurements <- measurements[, -columns_to_remove] + spektren.df <- as.data.frame(measurements) + if (!is.null(baum_ids)) { + baum_ids_20220721 <- c( + "ES8 (B 2-10-5-5)", "ES9 (B 2-10-2-4)", "IT8 (B 1-2-2-2)", "DE7 (B3-11-3-3)", "DE8 (B3-11-1-3)", + "FR1 (A 1-7-2-5)", "FR2 (A 1-7-1-1)", "ES1 (A 2-3-3-3)", "ES2 (A 2-3-3-2)", "IT2 (A 1-9-3-5)", + "IT3 (A 1-9-4-4)", "FR5 (A 1-1-2-5)", "FR6 (A 1-1-2-3)", "DE1 (B1-10-5-5)", "DE2 (B1-10-5-3)", + "IT7 (B 1-2-3-3)", "DE4 (B1-10-4-5)", "DE10 (B 3-11-1-1)", "ES10 (B 2-10-3-1)", "IT9 (B 1-2-2-3)", + "IT5 (A 1-9-5-2)", "ES5 (A 2-3-4-4)", "FR10 (A 1-1-5-4)", "FR4 (A 1-1-1-3)" + ) + baum_order_20220721 <- match(baum_ids, baum_ids_20220721) + reordered_columns <- unlist(lapply(baum_order_20220721, function(x) { + start_col <- (x - 1) * 15 + 1 + end_col <- start_col + 14 + return(start_col:end_col) + })) + spektren.df <- spektren.df[, reordered_columns] + } + } + if (basename(file_path) == "export_20220812.dat") { + measurements_filtered <- list() + for (i in seq(1, ncol(measurements), by = grouping_size)) { + tree_index <- (i - 1) / grouping_size + 1 + if (tree_index != exclude_index) { + measurements_filtered[[length(measurements_filtered) + 1]] <- measurements[, (i + 1):(i + grouping_size - 2)] + } + } + measurements_filtered <- do.call(cbind, measurements_filtered) + spektren.df <- as.data.frame(measurements_filtered) + } + rownames(spektren.df) <- wavelengths + return(spektren.df) +} + +calculate_mean_values <- function(spektren.df, baum_id, spalten_pro_baum) { + start_spalte <- (baum_id - 1) * spalten_pro_baum + 1 + end_spalte <- start_spalte + spalten_pro_baum - 1 + spalten_messungen <- start_spalte:end_spalte + mean_values <- rowMeans(spektren.df[, spalten_messungen], na.rm = TRUE) + return(mean_values) +} + +create_mean_values_df <- function(spektren.df, num_baeume, spalten_pro_baum) { + mean_values_list <- list() + for (baum_id in 1:num_baeume) { + mean_values <- calculate_mean_values(spektren.df, baum_id, spalten_pro_baum) + mean_values_list[[baum_id]] <- mean_values + } + mean_values_df <- as.data.frame(do.call(cbind, mean_values_list)) + colnames(mean_values_df) <- paste0("Tree_", 1:num_baeume) + rownames(mean_values_df) <- rownames(spektren.df) + return(mean_values_df) +} + +integrate_difference <- function(df1, df2, num_baeume, spalten_pro_baum) { + if (ncol(df1) != ncol(df2) || nrow(df1) != nrow(df2)) { + stop("The dataframes must have the same dimensions.") + } + wavelengths <- as.numeric(rownames(df1)) + integral_results <- numeric(num_baeume) + for (baum_id in 1:num_baeume) { + mean_values_df1 <- calculate_mean_values(df1, baum_id, spalten_pro_baum) + mean_values_df2 <- calculate_mean_values(df2, baum_id, spalten_pro_baum) + difference <- mean_values_df1 - mean_values_df2 + integral_results[baum_id] <- sum(diff(wavelengths) * (head(difference, -1) + tail(difference, -1)) / 2) + } + return(integral_results) +} + +calculate_wbi <- function(mean_values_df) { + wavelengths <- 325:1075 + wavelength_900 <- which(wavelengths == 900) + wavelength_970 <- which(wavelengths == 970) + + wbi_values <- apply(mean_values_df, 2, function(column) { + column[wavelength_900] / column[wavelength_970] + }) + + return(wbi_values) +} + +calculate_wbi_differences <- function(wbi_values1, wbi_values2) { + if (length(wbi_values1) != length(wbi_values2)) { + stop("The two WBI datasets must have the same length.") + } + + wbi_diff <- wbi_values1 - wbi_values2 + return(wbi_diff) +} + + +plot_spectral_data <- function(mean_values_df, output_file = "all.png", baum_ids, xlim = c(400, 1050), ylim = c(0, 1), date_of_capture) { + num_baeume <- ncol(mean_values_df) + png(output_file, width = 1024, height = 720) + colors <- rainbow(num_baeume) + plot(as.numeric(rownames(mean_values_df)), rep(NA, nrow(mean_values_df)), + xlab = "Wavelength (nm)", ylab = "Reflection (%)", + type = "n", ylim = ylim, xlim = xlim, + main = paste("Spectral Data -", date_of_capture) + ) + for (baum_id in 1:num_baeume) { + lines(as.numeric(rownames(mean_values_df)), mean_values_df[, baum_id], type = "l", col = colors[baum_id], lwd = 6) + } + legend("topleft", + legend = baum_ids, + text.col = colors, + pch = rep("-", num_baeume), + col = colors, lwd = 2 + ) + dev.off() +} + + +plot_side_by_side_spectral_data <- function(mean_values_df1, mean_values_df2, output_file = "side_by_side_plot.png", baum_ids, xlim = c(400, 1050), ylim = c(0, 1), dates) { + num_baeume <- ncol(mean_values_df1) + png(output_file, width = 1080, height = 1280) + par(mfrow = c(2, 1)) + colors <- rainbow(num_baeume) + + plot(as.numeric(rownames(mean_values_df1)), rep(NA, nrow(mean_values_df1)), + xlab = "Wavelength (nm)", ylab = "Reflection (%)", + type = "n", ylim = ylim, xlim = xlim, + main = paste("Spectral Data -", dates[1]) + ) + for (baum_id in 1:num_baeume) { + lines(as.numeric(rownames(mean_values_df1)), mean_values_df1[, baum_id], type = "l", col = colors[baum_id], lwd = 6) + } + legend("topleft", + legend = baum_ids, + text.col = colors, + pch = rep("-", num_baeume), + col = colors, lwd = 2 + ) + + plot(as.numeric(rownames(mean_values_df2)), rep(NA, nrow(mean_values_df2)), + xlab = "Wavelength (nm)", ylab = "Reflection (%)", + type = "n", ylim = ylim, xlim = xlim, + main = paste("Spectral Data -", dates[2]) + ) + for (baum_id in 1:num_baeume) { + lines(as.numeric(rownames(mean_values_df2)), mean_values_df2[, baum_id], type = "l", col = colors[baum_id], lwd = 6) + } + legend("topleft", + legend = baum_ids, + text.col = colors, + pch = rep("-", num_baeume), + col = colors, lwd = 2 + ) + + dev.off() +} + +plot_wbi_values <- function(wbi_values, baum_ids, output_file = "wbi_values_sorted_scaled.png", date_of_capture) { + png(output_file, width = 1024, height = 720) + par(mar = c(10, 5, 4, 2) + 0.1) + sorted_indices <- order(wbi_values) + sorted_wbi_values <- wbi_values[sorted_indices] + sorted_baum_ids <- baum_ids[sorted_indices] + min_wbi <- min(sorted_wbi_values) - 0.002 + max_wbi <- max(sorted_wbi_values) + 0.002 + barplot( + sorted_wbi_values, + names.arg = sorted_baum_ids, + col = "steelblue", + main = paste("Water Band Index (WBI) -", date_of_capture), + xlab = "", + ylab = "WBI Value", + las = 2, + ylim = c(min_wbi, max_wbi) + ) + dev.off() +} + +plot_combined_wbi_values <- function(wbi_values_1, wbi_values_2, baum_ids, output_file = "combined_wbi_plot.png", dates = c("2022/07/21", "2022/08/12")) { + combined_wbi <- cbind(wbi_values_1, wbi_values_2) + colnames(combined_wbi) <- dates + sorted_indices <- order(wbi_values_1) + sorted_combined_wbi <- combined_wbi[sorted_indices,] + sorted_baum_ids <- baum_ids[sorted_indices] + png(output_file, width = 1024, height = 720) + par(mar = c(10, 5, 4, 2) + 0.1) + barplot( + t(sorted_combined_wbi), + beside = TRUE, + names.arg = sorted_baum_ids, + col = c("steelblue", "darkorange"), + main = "Water Band Index (WBI) - 2022/07/22 & 2022/08/12", + xlab = "", + ylab = "WBI Value", + las = 2, + ylim = range(sorted_combined_wbi) * c(0.95, 1.05) + ) + legend("topleft", legend = dates, fill = c("steelblue", "darkorange")) + dev.off() +} + +plot_wbi_differences <- function(wbi_diff, baum_ids, output_file = "wbi_differences_sorted.png") { + wbi_diff <- -wbi_diff + sorted_indices <- order(wbi_diff) + sorted_wbi_diff <- wbi_diff[sorted_indices] + sorted_baum_ids <- baum_ids[sorted_indices] + + png(output_file, width = 1024, height = 720) + par(mar = c(10, 5, 4, 2) + 0.1) + barplot( + sorted_wbi_diff, + names.arg = sorted_baum_ids, + col = "steelblue", + main = "Differenzen im Water Band Index (WBI)", + xlab = "", + ylab = "WBI Differenz", + las = 2 + ) + + dev.off() +} + + +# Variables +baum_ids_20220812 <- c( + "DE1 (B1-10-5-5)", "DE2 (B1-10-5-3)", "DE4 (B1-10-4-5)", "DE7 (B3-11-3-3)", "DE8 (B3-11-1-3)", + "DE10 (B 3-11-1-1)", "IT2 (A 1-9-3-5)", "IT3 (A 1-9-4-4)", "IT5 (A 1-9-5-2)", "IT7 (B 1-2-3-3)", + "IT8 (B 1-2-2-2)", "IT9 (B 1-2-2-3)", "ES2 (A 2-3-3-2)", "ES5 (A 2-3-4-4)", + "ES8 (B 2-10-5-5)", "ES9 (B 2-10-2-4)", "ES10 (B 2-10-3-1)", "FR1 (A 1-7-2-5)", "FR2 (A 1-7-1-1)", + "FR4 (A 1-1-1-3)", "FR5 (A 1-1-2-5)", "FR6 (A 1-1-2-3)", "FR10 (A 1-1-5-4)" +) + +# Calculation +spektren20220721.df <- process_spectral_data(file_path = "~/Developer/courses/2021\ Projektbezogenes\ Arbeiten/Abschlussarbeit/data/export_20220721.dat", grouping_size = 17, exclude_index = 8, encoding = "UTF-16LE", baum_ids = baum_ids_20220812) +spektren20220812.df <- process_spectral_data(file_path = "~/Developer/courses/2021\ Projektbezogenes\ Arbeiten/Abschlussarbeit/data/export_20220812.dat", grouping_size = 17, exclude_index = 13, encoding = "UTF-16LE") +mean_values_20220721.df <- create_mean_values_df(spektren20220721.df, num_baeume = 23, spalten_pro_baum = 15) +mean_values_20220812.df <- create_mean_values_df(spektren20220812.df, num_baeume = 23, spalten_pro_baum = 15) +wbi_20220721 <- calculate_wbi(mean_values_20220721.df) +wbi_20220812 <- calculate_wbi(mean_values_20220812.df) +wbi_diff <- calculate_wbi_differences(wbi_20220721,wbi_20220812) + +# Plotting +plot_spectral_data(mean_values_df = mean_values_20220721.df, output_file = "plots/spectrum_20220721.png", baum_ids = baum_ids_20220812, xlim = c(400, 1050), ylim = c(0, 1), date_of_capture = "2022/07/21") +plot_spectral_data(mean_values_df = mean_values_20220812.df, output_file = "plots/spectrum_20220812.png", baum_ids = baum_ids_20220812, xlim = c(400, 1050), ylim = c(0, 1), date_of_capture = "2022/08/12") +plot_wbi_values(wbi_20220721, baum_ids = baum_ids_20220812, output_file = "plots/wbi_20220721.png", date_of_capture = "2022/07/21") +plot_wbi_values(wbi_20220812, baum_ids = baum_ids_20220812, output_file = "plots/wbi_20220812.png", date_of_capture = "2022/08/12") +plot_combined_wbi_values(wbi_values_1 = wbi_20220721, wbi_values_2 = wbi_20220812, baum_ids = baum_ids_20220812, output_file = "plots/wbi_combined.png", dates = c("2022/07/21", "2022/08/12")) +plot_wbi_differences(wbi_diff, baum_ids = baum_ids_20220812, output_file = "plots/wbi_differences.png") \ No newline at end of file diff --git a/2021_Projektbezogenes_Arbeiten/test.R b/2021_Projektbezogenes_Arbeiten/test.R new file mode 100644 index 0000000..3563255 --- /dev/null +++ b/2021_Projektbezogenes_Arbeiten/test.R @@ -0,0 +1,8 @@ +source("main.R") + +print(paste("Dimensions: ",length(wbi_20220721))) +print(paste("Dimensions: ",length(wbi_20220812))) + +print(paste("Values 20220721: ",wbi_20220721)) +print(paste("Values 20220812: ",wbi_20220812)) +print(paste("Values Difference: ", wbi_diff)) \ No newline at end of file diff --git a/2023_CS50X/bmp.h b/2023_CS50X/bmp.h new file mode 100644 index 0000000..95915c4 --- /dev/null +++ b/2023_CS50X/bmp.h @@ -0,0 +1,57 @@ +// BMP-related data types based on Microsoft's own + +#include + +// These data types are essentially aliases for C/C++ primitive data types. +// Adapted from http://msdn.microsoft.com/en-us/library/cc230309.aspx. +// See https://en.wikipedia.org/wiki/C_data_types#stdint.h for more on stdint.h. + +typedef uint8_t BYTE; +typedef uint32_t DWORD; +typedef int32_t LONG; +typedef uint16_t WORD; + +// The BITMAPFILEHEADER structure contains information about the type, size, +// and layout of a file that contains a DIB [device-independent bitmap]. +// Adapted from http://msdn.microsoft.com/en-us/library/dd183374(VS.85).aspx. + +typedef struct +{ + WORD bfType; + DWORD bfSize; + WORD bfReserved1; + WORD bfReserved2; + DWORD bfOffBits; +} __attribute__((__packed__)) +BITMAPFILEHEADER; + +// The BITMAPINFOHEADER structure contains information about the +// dimensions and color format of a DIB [device-independent bitmap]. +// Adapted from http://msdn.microsoft.com/en-us/library/dd183376(VS.85).aspx. + +typedef struct +{ + DWORD biSize; + LONG biWidth; + LONG biHeight; + WORD biPlanes; + WORD biBitCount; + DWORD biCompression; + DWORD biSizeImage; + LONG biXPelsPerMeter; + LONG biYPelsPerMeter; + DWORD biClrUsed; + DWORD biClrImportant; +} __attribute__((__packed__)) +BITMAPINFOHEADER; + +// The RGBTRIPLE structure describes a color consisting of relative intensities of +// red, green, and blue. Adapted from http://msdn.microsoft.com/en-us/library/aa922590.aspx. + +typedef struct +{ + BYTE rgbtBlue; + BYTE rgbtGreen; + BYTE rgbtRed; +} __attribute__((__packed__)) +RGBTRIPLE; \ No newline at end of file diff --git a/2023_CS50X/bulbs.c b/2023_CS50X/bulbs.c new file mode 100644 index 0000000..e2e6a25 --- /dev/null +++ b/2023_CS50X/bulbs.c @@ -0,0 +1,82 @@ +#include +#include +#include +#include + +const int BITS_IN_BYTE = 8; + +int main(void) +{ + string text = get_string("Text: "); + + // Loop over every character + + int i = 0; + int l = 0; + double rest = 0; + double zahl; + int len = 0; + int bi; + int n = 0; + int m = 0; + + for (i = 0, len = strlen(text); i < len; i++) + { + zahl = text[i]; + bi = 0; + for (l = 0; l < BITS_IN_BYTE; l++) + { + zahl = (zahl - (rest * pow(10, -1))) / 2.0 ; + rest = (zahl - floor(zahl)) * 10; + + if (rest > 0) + { + bi = bi + pow(10, l); + } + else + { + continue; + } + } + + if (bi >= 1000000 && bi <= 1111111) + { + char test[bi]; + sprintf(test, "0%d", bi); + //printf("%s",test); + for (n = 0, m = strlen(test); n < m; n++) + { + if (test[n] == 48) + { + // Dark emoji + printf("\U000026AB"); + } + else if (test[n] == 49) + { + // Light emoji + printf("\U0001F7E1"); + } + } + } + else if (bi >= 100000 && bi <= 111111) + { + char test[bi]; + sprintf(test, "00%d", bi); + //printf("%s",test); + for (n = 0, m = strlen(test); n < m; n++) + { + if (test[n] == 48) + { + // Dark emoji + printf("\U000026AB"); + } + else if (test[n] == 49) + { + // Light emoji + printf("\U0001F7E1"); + } + } + } + printf("\n"); + } +} \ No newline at end of file diff --git a/2023_CS50X/cash.c b/2023_CS50X/cash.c new file mode 100644 index 0000000..f7a24cc --- /dev/null +++ b/2023_CS50X/cash.c @@ -0,0 +1,76 @@ +#include +#include + +int get_cents(void); +int calculate_quarters(int cents); +int calculate_dimes(int cents); +int calculate_nickels(int cents); +int calculate_pennies(int cents); + +int main(void) +{ + // Ask how many cents the customer is owed + int cents = get_cents(); + + // Calculate the number of quarters to give the customer + int quarters = calculate_quarters(cents); + cents = cents - quarters * 25; + + // Calculate the number of dimes to give the customer + int dimes = calculate_dimes(cents); + cents = cents - dimes * 10; + + // Calculate the number of nickels to give the customer + int nickels = calculate_nickels(cents); + cents = cents - nickels * 5; + + // Calculate the number of pennies to give the customer + int pennies = calculate_pennies(cents); + cents = cents - pennies * 1; + + // Sum coins + int coins = quarters + dimes + nickels + pennies; + + // Print total number of coins to give the customer + printf("%i\n", coins); +} + +int get_cents(void) +{ + int cents; + do + { + cents = get_int("Number of cents: \n"); + } + while (cents < 0); + return cents; + +} + +int calculate_quarters(int cents) +{ + int quarters; + quarters = cents / 25; + return quarters; +} + +int calculate_dimes(int cents) +{ + int dimes; + dimes = cents / 10; + return dimes; +} + +int calculate_nickels(int cents) +{ + int nickels; + nickels = cents / 5; + return nickels; +} + +int calculate_pennies(int cents) +{ + int pennies; + pennies = cents / 1; + return pennies; +} \ No newline at end of file diff --git a/2023_CS50X/cash.py b/2023_CS50X/cash.py new file mode 100644 index 0000000..158e46c --- /dev/null +++ b/2023_CS50X/cash.py @@ -0,0 +1,38 @@ +# TODO + +quarters = 0.25 +dimes = 0.10 +nickels = 0.05 +pennies = 0.01 + +coins = 0 + +print('Change owed: ') + +while True: + try: + change = float(input()) + if change >= 0: + break + else: + print("Change must be greater then 0: ") + except ValueError: + print("Change must be a numeric value: ") + +while change > 0: + if change >= quarters: + change -= quarters + coins += 1 + elif change >= dimes: + change -= dimes + coins += 1 + elif change >= nickels: + change -= nickels + coins += 1 + elif change >= pennies: + change -= pennies + coins += 1 + + change = round(change, 2) + +print(coins) diff --git a/2023_CS50X/colorize.c b/2023_CS50X/colorize.c new file mode 100644 index 0000000..5031d76 --- /dev/null +++ b/2023_CS50X/colorize.c @@ -0,0 +1,111 @@ +#include +#include + +#include "helpers.h" + +int main(int argc, char *argv[]) +{ + // ensure proper usage + if (argc != 3) + { + printf("Usage: colorize infile outfile\n"); + return 1; + } + + // remember filenames + char *infile = argv[1]; + char *outfile = argv[2]; + + // open input file + FILE *inptr = fopen(infile, "r"); + if (inptr == NULL) + { + printf("Could not open %s.\n", infile); + return 4; + } + + // open output file + FILE *outptr = fopen(outfile, "w"); + if (outptr == NULL) + { + fclose(inptr); + printf("Could not create %s.\n", outfile); + return 5; + } + + // read infile's BITMAPFILEHEADER + BITMAPFILEHEADER bf; + fread(&bf, sizeof(BITMAPFILEHEADER), 1, inptr); + + // read infile's BITMAPINFOHEADER + BITMAPINFOHEADER bi; + fread(&bi, sizeof(BITMAPINFOHEADER), 1, inptr); + + // ensure infile is (likely) a 24-bit uncompressed BMP 4.0 + if (bf.bfType != 0x4d42 || bf.bfOffBits != 54 || bi.biSize != 40 || + bi.biBitCount != 24 || bi.biCompression != 0) + { + fclose(outptr); + fclose(inptr); + printf("Unsupported file format.\n"); + return 6; + } + + int height = abs(bi.biHeight); + int width = bi.biWidth; + + // allocate memory for image + RGBTRIPLE (*image)[width] = calloc(height, width * sizeof(RGBTRIPLE)); + if (image == NULL) + { + printf("Not enough memory to store image.\n"); + fclose(outptr); + fclose(inptr); + return 7; + } + + // determine padding for scanlines + int padding = (4 - (width * sizeof(RGBTRIPLE)) % 4) % 4; + + // iterate over infile's scanlines + for (int i = 0; i < height; i++) + { + // read row into pixel array + fread(image[i], sizeof(RGBTRIPLE), width, inptr); + + // skip over padding + fseek(inptr, padding, SEEK_CUR); + } + + colorize(height, width, image); + + // write outfile's BITMAPFILEHEADER + fwrite(&bf, sizeof(BITMAPFILEHEADER), 1, outptr); + + // write outfile's BITMAPINFOHEADER + fwrite(&bi, sizeof(BITMAPINFOHEADER), 1, outptr); + + // write new pixels to outfile + for (int i = 0; i < height; i++) + { + // write row to outfile + fwrite(image[i], sizeof(RGBTRIPLE), width, outptr); + + // write padding at end of row + for (int k = 0; k < padding; k++) + { + fputc(0x00, outptr); + } + } + + // free memory for image + free(image); + + // close infile + fclose(inptr); + + // close outfile + fclose(outptr); + + return 0; +} diff --git a/2023_CS50X/credit.c b/2023_CS50X/credit.c new file mode 100644 index 0000000..c28f156 --- /dev/null +++ b/2023_CS50X/credit.c @@ -0,0 +1,56 @@ +//// TODO //// + +#include +#include + +int main(void) +{ + int modulo = 0; + int start = 0; + long number = 0; + + // Promt for input + number = get_long("Number: "); + + printf("%li\n", number); + + // Calculate checksum + //for (int i = length; i < length; i-=2) + //{ + // printf("number[i]"); + //} + + + // Check for card length and starting digits + + + // If invalid Print INVALID\n + + if (modulo != 0) + { + printf("INVALID\n"); + } + + // Else + else + { + // Print AMEX\n + + if (start == 34 || start == 37) + { + printf("AMEX\n"); + } + + // Print MASTERCARD\n + else if (start == 51 || start == 52 || start == 53 || start == 54 || start == 55) + { + printf("MASTERCARD\n"); + } + + // Print VISA\n + else if (start == 4) + { + printf("VISA\n"); + } + } +} \ No newline at end of file diff --git a/2023_CS50X/dictionary.c b/2023_CS50X/dictionary.c new file mode 100644 index 0000000..cedc009 --- /dev/null +++ b/2023_CS50X/dictionary.c @@ -0,0 +1,62 @@ +// Implements a dictionary's functionality + +#include +#include + +#include "dictionary.h" + +// Represents a node in a hash table +typedef struct node +{ + char word[LENGTH + 1]; + struct node *next; +} node; + +// TODO: Choose number of buckets in hash table +const unsigned int N = 26; + +// Hash table +node *table[N]; + +// Returns true if word is in dictionary, else false +bool check(const char *word) +{ + // TODO + return false; +} + +// Hashes word to a number +unsigned int hash(const char *word) +{ + // TODO: Improve this hash function + return toupper(word[0]) - 'A'; +} + +// Loads dictionary into memory, returning true if successful, else false +bool load(const char *dictionary) +{ + // TODO + // Open the dictionary file + + // Read each word in the file + + // Add each word to the hash table + + // Close the dictionary file + + return false; +} + +// Returns number of words in dictionary if loaded, else 0 if not yet loaded +unsigned int size(void) +{ + // TODO + return 0; +} + +// Unloads dictionary from memory, returning true if successful, else false +bool unload(void) +{ + // TODO + return false; +} diff --git a/2023_CS50X/dictionary.h b/2023_CS50X/dictionary.h new file mode 100644 index 0000000..99e9904 --- /dev/null +++ b/2023_CS50X/dictionary.h @@ -0,0 +1,19 @@ +// Declares a dictionary's functionality + +#ifndef DICTIONARY_H +#define DICTIONARY_H + +#include + +// Maximum length for a word +// (e.g., pneumonoultramicroscopicsilicovolcanoconiosis) +#define LENGTH 45 + +// Prototypes +bool check(const char *word); +unsigned int hash(const char *word); +bool load(const char *dictionary); +unsigned int size(void); +bool unload(void); + +#endif // DICTIONARY_H diff --git a/2023_CS50X/dna.py b/2023_CS50X/dna.py new file mode 100644 index 0000000..401e674 --- /dev/null +++ b/2023_CS50X/dna.py @@ -0,0 +1,58 @@ +import csv +import sys + + +def main(): + + # TODO: Check for command-line usage + + # TODO: Read database file into a variable + + # TODO: Read DNA sequence file into a variable + + # TODO: Find longest match of each STR in DNA sequence + + # TODO: Check database for matching profiles + + return + + +def longest_match(sequence, subsequence): + """Returns length of longest run of subsequence in sequence.""" + + # Initialize variables + longest_run = 0 + subsequence_length = len(subsequence) + sequence_length = len(sequence) + + # Check each character in sequence for most consecutive runs of subsequence + for i in range(sequence_length): + + # Initialize count of consecutive runs + count = 0 + + # Check for a subsequence match in a "substring" (a subset of characters) within sequence + # If a match, move substring to next potential match in sequence + # Continue moving substring and checking for matches until out of consecutive matches + while True: + + # Adjust substring start and end + start = i + count * subsequence_length + end = start + subsequence_length + + # If there is a match in the substring + if sequence[start:end] == subsequence: + count += 1 + + # If there is no match in the substring + else: + break + + # Update most consecutive matches found + longest_run = max(longest_run, count) + + # After checking for runs at each character in seqeuence, return longest run found + return longest_run + + +main() diff --git a/2023_CS50X/filter.c b/2023_CS50X/filter.c new file mode 100644 index 0000000..3b04023 --- /dev/null +++ b/2023_CS50X/filter.c @@ -0,0 +1,150 @@ +#include +#include +#include + +#include "helpers.h" + +int main(int argc, char *argv[]) +{ + // Define allowable filters + char *filters = "bgrs"; + + // Get filter flag and check validity + char filter = getopt(argc, argv, filters); + if (filter == '?') + { + printf("Invalid filter.\n"); + return 1; + } + + // Ensure only one filter + if (getopt(argc, argv, filters) != -1) + { + printf("Only one filter allowed.\n"); + return 2; + } + + // Ensure proper usage + if (argc != optind + 2) + { + printf("Usage: ./filter [flag] infile outfile\n"); + return 3; + } + + // Remember filenames + char *infile = argv[optind]; + char *outfile = argv[optind + 1]; + + // Open input file + FILE *inptr = fopen(infile, "r"); + if (inptr == NULL) + { + printf("Could not open %s.\n", infile); + return 4; + } + + // Open output file + FILE *outptr = fopen(outfile, "w"); + if (outptr == NULL) + { + fclose(inptr); + printf("Could not create %s.\n", outfile); + return 5; + } + + // Read infile's BITMAPFILEHEADER + BITMAPFILEHEADER bf; + fread(&bf, sizeof(BITMAPFILEHEADER), 1, inptr); + + // Read infile's BITMAPINFOHEADER + BITMAPINFOHEADER bi; + fread(&bi, sizeof(BITMAPINFOHEADER), 1, inptr); + + // Ensure infile is (likely) a 24-bit uncompressed BMP 4.0 + if (bf.bfType != 0x4d42 || bf.bfOffBits != 54 || bi.biSize != 40 || + bi.biBitCount != 24 || bi.biCompression != 0) + { + fclose(outptr); + fclose(inptr); + printf("Unsupported file format.\n"); + return 6; + } + + // Get image's dimensions + int height = abs(bi.biHeight); + int width = bi.biWidth; + + // Allocate memory for image + RGBTRIPLE(*image)[width] = calloc(height, width * sizeof(RGBTRIPLE)); + if (image == NULL) + { + printf("Not enough memory to store image.\n"); + fclose(outptr); + fclose(inptr); + return 7; + } + + // Determine padding for scanlines + int padding = (4 - (width * sizeof(RGBTRIPLE)) % 4) % 4; + + // Iterate over infile's scanlines + for (int i = 0; i < height; i++) + { + // Read row into pixel array + fread(image[i], sizeof(RGBTRIPLE), width, inptr); + + // Skip over padding + fseek(inptr, padding, SEEK_CUR); + } + + // Filter image + switch (filter) + { + // Blur + case 'b': + blur(height, width, image); + break; + + // Grayscale + case 'g': + grayscale(height, width, image); + break; + + // Reflection + case 'r': + reflect(height, width, image); + break; + + // Sepia + case 's': + sepia(height, width, image); + break; + } + + // Write outfile's BITMAPFILEHEADER + fwrite(&bf, sizeof(BITMAPFILEHEADER), 1, outptr); + + // Write outfile's BITMAPINFOHEADER + fwrite(&bi, sizeof(BITMAPINFOHEADER), 1, outptr); + + // Write new pixels to outfile + for (int i = 0; i < height; i++) + { + // Write row to outfile + fwrite(image[i], sizeof(RGBTRIPLE), width, outptr); + + // Write padding at end of row + for (int k = 0; k < padding; k++) + { + fputc(0x00, outptr); + } + } + + // Free memory for image + free(image); + + // Close files + fclose(inptr); + fclose(outptr); + return 0; +} diff --git a/2023_CS50X/hello.c b/2023_CS50X/hello.c new file mode 100644 index 0000000..42ceb7b --- /dev/null +++ b/2023_CS50X/hello.c @@ -0,0 +1,8 @@ +#include +#include + +int main(void) +{ + string name = get_string("What is your Name? "); + printf("hello, %s\n ", name); +} \ No newline at end of file diff --git a/2023_CS50X/hello.py b/2023_CS50X/hello.py new file mode 100644 index 0000000..5c29b5f --- /dev/null +++ b/2023_CS50X/hello.py @@ -0,0 +1,4 @@ +# TODO +print('What is your name?') +name = input() +print(f'hello, {name}') \ No newline at end of file diff --git a/2023_CS50X/helpers.c b/2023_CS50X/helpers.c new file mode 100644 index 0000000..58bc0b3 --- /dev/null +++ b/2023_CS50X/helpers.c @@ -0,0 +1,350 @@ +#include "helpers.h" +#include +#include + +// Convert image to grayscale +// The function grayscale takes three arguments: height and width, which are integers representing the dimensions of an image, and image, which is a two-dimensional array of type RGBTRIPLE representing the pixels of the image. The function converts the image to grayscale by setting the red, green, and blue components of each pixel to the mean of the original values. The result is stored back in the image array. The function uses nested loops to iterate over all pixels in the image. For each pixel, it calculates the mean of its red, green, and blue components using the formula (red + green + blue) / 3, and rounds the result to the nearest integer using the round function. Then it sets the red, green, and blue components of the pixel to the calculated mean. Finally, the function returns void, indicating that it does not return any value. +void grayscale(int height, int width, RGBTRIPLE image[height][width]) +{ + for (int i = 0; i < height; i++) + { + for (int j = 0; j < width; j++) + { + int mean = (int) round((image[i][j].rgbtRed + image[i][j].rgbtGreen + image[i][j].rgbtBlue) / 3.0); + image[i][j].rgbtRed = mean; + image[i][j].rgbtGreen = mean; + image[i][j].rgbtBlue = mean; + } + } + return; +} + +// Convert image to sepia +void sepia(int height, int width, RGBTRIPLE image[height][width]) +{ + for (int i = 0; i < height; i++) + { + for (int j = 0; j < width; j++) + { + int sepiaRed = (int) round(.393 * image[i][j].rgbtRed + .769 * image[i][j].rgbtGreen + .189 * image[i][j].rgbtBlue) ; + int sepiaGreen = (int) round(.349 * image[i][j].rgbtRed + .686 * image[i][j].rgbtGreen + .168 * image[i][j].rgbtBlue); + int sepiaBlue = (int) round(.272 * image[i][j].rgbtRed + .534 * image[i][j].rgbtGreen + .131 * image[i][j].rgbtBlue); + + if (sepiaRed > 255) + { + sepiaRed = 255; + } + + if (sepiaGreen > 255) + { + sepiaGreen = 255; + } + + if (sepiaBlue > 255) + { + sepiaBlue = 255; + } + + image[i][j].rgbtRed = sepiaRed; + image[i][j].rgbtGreen = sepiaGreen; + image[i][j].rgbtBlue = sepiaBlue; + } + } + return; +} + +// Reflect image horizontally +void reflect(int height, int width, RGBTRIPLE image[height][width]) +{ + for (int i = 0; i < height; i++) + { + for (int j = 0; j < width / 2; j++) + { + RGBTRIPLE og = image[i][j]; + image[i][j] = image[i][width - 1 - j]; + image[i][width - 1 - j] = og; + } + } + return; +} + + + +// Blur image +void blur(int height, int width, RGBTRIPLE image[height][width]) +{ + RGBTRIPLE og[height][width]; + + for (int i = 0; i < height; i++) + { + for (int j = 0; j < width; j++) + { + og[i][j] = image[i][j]; + } + } + + for (int i = 0; i < height; i++) + { + for (int j = 0; j < width; j++) + { + // inbetween + if (i >= 1 && i < height - 1 && j >= 1 && j < width - 1) + { + image[i][j].rgbtRed = (int) round((og[i][j].rgbtRed + + og[i - 1][j - 1].rgbtRed + + og[i - 1][j].rgbtRed + + og[i - 1][j + 1].rgbtRed + + og[i][j - 1].rgbtRed + + og[i][j + 1].rgbtRed + + og[i + 1][j - 1].rgbtRed + + og[i + 1][j].rgbtRed + + og[i + 1][j + 1].rgbtRed) / 9.0); + image[i][j].rgbtGreen = (int) round((og[i][j].rgbtGreen + + og[i - 1][j - 1].rgbtGreen + + og[i - 1][j].rgbtGreen + + og[i - 1][j + 1].rgbtGreen + + og[i][j - 1].rgbtGreen + + og[i][j + 1].rgbtGreen + + og[i + 1][j - 1].rgbtGreen + + og[i + 1][j].rgbtGreen + + og[i + 1][j + 1].rgbtGreen) / 9.0); + image[i][j].rgbtBlue = (int) round((og[i][j].rgbtBlue + + og[i - 1][j - 1].rgbtBlue + + og[i - 1][j].rgbtBlue + + og[i - 1][j + 1].rgbtBlue + + og[i][j - 1].rgbtBlue + + og[i][j + 1].rgbtBlue + + og[i + 1][j - 1].rgbtBlue + + og[i + 1][j].rgbtBlue + + og[i + 1][j + 1].rgbtBlue) / 9.0); + } + + // Corners + // upper left corner + if (i == 0 && j == 0) + { + image[i][j].rgbtRed = (int) round((og[i][j].rgbtRed + + og[i][j + 1].rgbtRed + + og[i + 1][j].rgbtRed + + og[i + 1][j + 1].rgbtRed) / 4.0); + image[i][j].rgbtGreen = (int) round((og[i][j].rgbtGreen + + og[i][j + 1].rgbtGreen + + og[i + 1][j].rgbtGreen + + og[i + 1][j + 1].rgbtGreen) / 4.0); + image[i][j].rgbtBlue = (int) round((og[i][j].rgbtBlue + + og[i][j + 1].rgbtBlue + + og[i + 1][j].rgbtBlue + + og[i + 1][j + 1].rgbtBlue) / 4.0); + } + // upper right corner + if (i == 0 && j == width - 1) + { + image[i][j].rgbtRed = (int) round((og[i][j].rgbtRed + + og[i][j - 1].rgbtRed + + og[i + 1][j - 1].rgbtRed + + og[i + 1][j].rgbtRed) / 4.0); + image[i][j].rgbtGreen = (int) round((og[i][j].rgbtGreen + + og[i][j - 1].rgbtGreen + + og[i + 1][j - 1].rgbtGreen + + og[i + 1][j].rgbtGreen) / 4.0); + image[i][j].rgbtBlue = (int) round((og[i][j].rgbtBlue + + og[i][j - 1].rgbtBlue + + og[i + 1][j - 1].rgbtBlue + + og[i + 1][j].rgbtBlue) / 4.0); + } + + // lower left corner + if (i == height - 1 && j == 0) + { + image[i][j].rgbtRed = (int) round((og[i][j].rgbtRed + + og[i - 1][j].rgbtRed + + og[i - 1][j + 1].rgbtRed + + og[i][j + 1].rgbtRed) / 4.0); + image[i][j].rgbtGreen = (int) round((og[i][j].rgbtGreen + + og[i - 1][j].rgbtGreen + + og[i - 1][j + 1].rgbtGreen + + og[i][j + 1].rgbtGreen) / 4.0); + image[i][j].rgbtBlue = (int) round((og[i][j].rgbtBlue + + og[i - 1][j].rgbtBlue + + og[i - 1][j + 1].rgbtBlue + + og[i][j + 1].rgbtBlue) / 4.0); + } + + // lower right corner + if (i == height - 1 && j == width - 1) + { + image[i][j].rgbtRed = (int) round((og[i][j].rgbtRed + + og[i - 1][j - 1].rgbtRed + + og[i - 1][j].rgbtRed + + og[i][j - 1].rgbtRed) / 4.0); + image[i][j].rgbtGreen = (int) round((og[i][j].rgbtGreen + + og[i - 1][j - 1].rgbtGreen + + og[i - 1][j].rgbtGreen + + og[i][j - 1].rgbtGreen) / 4.0); + image[i][j].rgbtBlue = (int) round((og[i][j].rgbtBlue + + og[i - 1][j - 1].rgbtBlue + + og[i - 1][j].rgbtBlue + + og[i][j - 1].rgbtBlue) / 4.0); + } + + // Sides + // Upper side + if (i == 0 && j > 0 && j < width - 1) + { + image[i][j].rgbtRed = (int) round((og[i][j].rgbtRed + + og[i][j - 1].rgbtRed + + og[i][j + 1].rgbtRed + + og[i + 1][j - 1].rgbtRed + + og[i + 1][j].rgbtRed + + og[i + 1][j + 1].rgbtRed) / 6.0); + image[i][j].rgbtGreen = (int) round((og[i][j].rgbtGreen + + og[i][j - 1].rgbtGreen + + og[i][j + 1].rgbtGreen + + og[i + 1][j - 1].rgbtGreen + + og[i + 1][j].rgbtGreen + + og[i + 1][j + 1].rgbtGreen) / 6.0); + image[i][j].rgbtBlue = (int) round((og[i][j].rgbtBlue + + og[i][j - 1].rgbtBlue + + og[i][j + 1].rgbtBlue + + og[i + 1][j - 1].rgbtBlue + + og[i + 1][j].rgbtBlue + + og[i + 1][j + 1].rgbtBlue) / 6.0); + } + + // lower side + if (i == height - 1 && j > 0 && j < width - 1) + { + image[i][j].rgbtRed = (int)round((og[i][j].rgbtRed + + og[i - 1][j - 1].rgbtRed + + og[i - 1][j].rgbtRed + + og[i - 1][j + 1].rgbtRed + + og[i][j - 1].rgbtRed + + og[i][j + 1].rgbtRed) / 6.0); + image[i][j].rgbtGreen = (int)round((og[i][j].rgbtGreen + + og[i - 1][j - 1].rgbtGreen + + og[i - 1][j].rgbtGreen + + og[i - 1][j + 1].rgbtGreen + + og[i][j - 1].rgbtGreen + + og[i][j + 1].rgbtGreen) / 6.0); + image[i][j].rgbtBlue = (int) round((og[i][j].rgbtBlue + + og[i - 1][j - 1].rgbtBlue + + og[i - 1][j].rgbtBlue + + og[i - 1][j + 1].rgbtBlue + + og[i][j - 1].rgbtBlue + + og[i][j + 1].rgbtBlue) / 6.0); + } + + // left side + if (i > 0 && i < height - 1 && j == 0) + { + image[i][j].rgbtRed = (int) round((og[i][j].rgbtRed + + og[i - 1][j].rgbtRed + + og[i - 1][j + 1].rgbtRed + + og[i][j + 1].rgbtRed + + og[i + 1][j].rgbtRed + + og[i + 1][j + 1].rgbtRed) / 6.0); + image[i][j].rgbtGreen = (int) round((og[i][j].rgbtGreen + + og[i - 1][j].rgbtGreen + + og[i - 1][j + 1].rgbtGreen + + og[i][j + 1].rgbtGreen + + og[i + 1][j].rgbtGreen + + og[i + 1][j + 1].rgbtGreen) / 6.0); + image[i][j].rgbtBlue = (int) round((og[i][j].rgbtBlue + + og[i - 1][j].rgbtBlue + + og[i - 1][j + 1].rgbtBlue + + og[i][j + 1].rgbtBlue + + og[i + 1][j].rgbtBlue + + og[i + 1][j + 1].rgbtBlue) / 6.0); + } + + // right side + if (i > 0 && i < height - 1 && j == width - 1) + { + image[i][j].rgbtRed = (int) round((og[i][j].rgbtRed + + og[i - 1][j - 1].rgbtRed + + og[i - 1][j].rgbtRed + + og[i][j - 1].rgbtRed + + og[i + 1][j - 1].rgbtRed + + og[i + 1][j].rgbtRed) / 6.0); + image[i][j].rgbtGreen = (int) round((og[i][j].rgbtGreen + + og[i - 1][j - 1].rgbtGreen + + og[i - 1][j].rgbtGreen + og[i][j - 1].rgbtGreen + + og[i + 1][j - 1].rgbtGreen + og[i + 1][j].rgbtGreen) / 6.0); + image[i][j].rgbtBlue = (int) round((og[i][j].rgbtBlue + + og[i - 1][j - 1].rgbtBlue + + og[i - 1][j].rgbtBlue + + og[i][j - 1].rgbtBlue + + og[i + 1][j - 1].rgbtBlue + + og[i + 1][j].rgbtBlue) / 6.0); + } + } + } + return; +} + +//00 = [i - 1][j - 1] +//01 = [i - 1][j] +//02 = [i - 1][j + 1] +//10 = [i][j - 1] +//12 = [i][j + 1] +//20 = [i + 1][j - 1] +//21 = [i + 1][j] +//22 = [i + 1][j + 1] + +// Dazwischen +//00 = [i - 1][j - 1] +//01 = [i - 1][j] +//02 = [i - 1][j + 1] +//10 = [i][j - 1] +//12 = [i][j + 1] +//20 = [i + 1][j - 1] +//21 = [i + 1][j] +//22 = [i + 1][j + 1] + +//Ecke Links oben +//12 [i][j + 1] +//21 [i + 1][j] +//22 [i + 1][j + 1] + +//Ecke Rechts oben +//10 [i][j - 1] +//20 [i + 1][j - 1] +//21 [i + 1][j] + +//Ecke Links unten +//01 [i - 1][j] +//02 [i - 1][j + 1] +//12 [i][j + 1] + +//Ecke Rechts unten +//00 [i - 1][j - 1] +//01 [i - 1][j] +//10 [i][j - 1] + +// Seite oben +//10 [i][j - 1] +//12 [i][j + 1] +//20 [i + 1][j - 1] +//21 [i + 1][j] +//22 [i + 1][j + 1] + +// Seite unten +//00 [i - 1][j - 1] +//01 [i - 1][j] +//02 [i - 1][j + 1] +//10 [i][j - 1] +//12 [i][j + 1] + +// Seite links +//01 [i - 1][j] +//02 [i - 1][j + 1] +//12 [i][j + 1] +//21 [i + 1][j] +//22 [i + 1][j + 1] + +// Seite rechts +//00 [i - 1][j - 1] +//01 [i - 1][j] +//10 [i][j - 1] +//20 [i + 1][j - 1] +//21 [i + 1][j] \ No newline at end of file diff --git a/2023_CS50X/helpers.h b/2023_CS50X/helpers.h new file mode 100644 index 0000000..412da8c --- /dev/null +++ b/2023_CS50X/helpers.h @@ -0,0 +1,13 @@ +#include "bmp.h" + +// Convert image to grayscale +void grayscale(int height, int width, RGBTRIPLE image[height][width]); + +// Convert image to sepia +void sepia(int height, int width, RGBTRIPLE image[height][width]); + +// Reflect image horizontally +void reflect(int height, int width, RGBTRIPLE image[height][width]); + +// Blur image +void blur(int height, int width, RGBTRIPLE image[height][width]); diff --git a/2023_CS50X/inheritance.c b/2023_CS50X/inheritance.c new file mode 100644 index 0000000..4cb1839 --- /dev/null +++ b/2023_CS50X/inheritance.c @@ -0,0 +1,126 @@ +#include +#include +#include +#include + +typedef struct person +{ + struct person *parents[2]; + char alleles[2]; +} person; + +const int GENERATIONS = 3; +const int INDENT_LENGTH = 4; + +person *create_family(int generations); +void print_family(person *p, int generation); +void free_family(person *p); +char random_allele(); + +int main(void) +{ + srand(time(0)); + + person *p = create_family(GENERATIONS); + + print_family(p, 0); + + free_family(p); +} + +person *create_family(int generations) +{ + person *p = malloc(sizeof(person)); + + if (generations > 1) + { + person *parent0 = create_family(generations - 1); + person *parent1 = create_family(generations - 1); + + p->parents[0] = parent0; + p->parents[1] = parent1; + + if (rand() % 2) + { + p->alleles[0] = parent0->alleles[rand() % 2]; + p->alleles[1] = parent1->alleles[rand() % 2]; + } + else + { + p->alleles[1] = parent0->alleles[rand() % 2]; + p->alleles[0] = parent1->alleles[rand() % 2]; + } + } + else + { + p->parents[0] = NULL; + p->parents[1] = NULL; + p->alleles[0] = random_allele(); + p->alleles[1] = random_allele(); + } + + return p; +} + +void free_family(person *p) +{ + if (p == NULL) + { + return; + } + + free_family(p->parents[0]); + free_family(p->parents[1]); + + free(p); +} + +void print_family(person *p, int generation) +{ + if (p == NULL) + { + return; + } + + for (int i = 0; i < generation * INDENT_LENGTH; i++) + { + printf(" "); + } + + if (generation == 0) + { + printf("Child (Generation %i): blood type %c%c\n", generation, p->alleles[0], p->alleles[1]); + } + else if (generation == 1) + { + printf("Parent (Generation %i): blood type %c%c\n", generation, p->alleles[0], p->alleles[1]); + } + else + { + for (int i = 0; i < generation - 2; i++) + { + printf("Great-"); + } + printf("Grandparent (Generation %i): blood type %c%c\n", generation, p->alleles[0], p->alleles[1]); + } + + print_family(p->parents[0], generation + 1); + print_family(p->parents[1], generation + 1); +} + +char random_allele() +{ + int r = rand() % 3; + if (r == 0) + { + return 'A'; + } + else if (r == 1) + { + return 'B'; + } + else + { + return 'O'; + } +} \ No newline at end of file diff --git a/2023_CS50X/lecture.c b/2023_CS50X/lecture.c new file mode 100644 index 0000000..319b844 --- /dev/null +++ b/2023_CS50X/lecture.c @@ -0,0 +1,25 @@ +// hastable + +#include + +typedef struct node { + char *name; + char *number; + struct Node *next; +} Node ; + +node *table[26]; + +unsigned int hash(const char *word){ + return toupper(word[0]) - 'A'; +} + + +// tries + +typedef struct node{ + struct node *children[26]; + char *number; +} Node; + +node *trie; \ No newline at end of file diff --git a/2023_CS50X/mario.c b/2023_CS50X/mario.c new file mode 100644 index 0000000..f60de7d --- /dev/null +++ b/2023_CS50X/mario.c @@ -0,0 +1,46 @@ +#include +#include + +int main(void) +{ + int size; + int spaces; + int hashes; + + // Asking for size + do + { + size = get_int("Size: "); + } + while (size < 1 || size > 8); + + // Building + for (int i = 0; i < size; i++) + { + + // left spaces + for (spaces = (size - i); spaces >= 2; spaces--) + { + printf(" "); + } + + // hashes + for (hashes = 0; hashes <= i; hashes++) + { + printf("#"); + } + + // middle spaces + printf(" "); + + // hashes + for (hashes = 0; hashes <= i; hashes++) + { + printf("#"); + } + + // next line + printf("\n"); + + } +} \ No newline at end of file diff --git a/2023_CS50X/mario.py b/2023_CS50X/mario.py new file mode 100644 index 0000000..5f13b89 --- /dev/null +++ b/2023_CS50X/mario.py @@ -0,0 +1,14 @@ +# TODO +print("Height: ") +while True: + try: + size = int(input()) + if 1 <= size <= 8: + break + else: + print("Height between 1 and 8: ") + except ValueError: + print("Height with numeric value: ") + +for i in range(1, size+1): + print(((size - i) * ' ') + (i * '#')) \ No newline at end of file diff --git a/2023_CS50X/plurality.c b/2023_CS50X/plurality.c new file mode 100644 index 0000000..270d0c2 --- /dev/null +++ b/2023_CS50X/plurality.c @@ -0,0 +1,105 @@ +#include +#include +#include + +// Max number of candidates +#define MAX 9 + +// Candidates have name and vote count +typedef struct +{ + string name; + int votes; +} +candidate; + +// Array of candidates +candidate candidates[MAX]; + +// Number of candidates +int candidate_count; + +// Function prototypes +bool vote(string name); +void print_winner(void); + +int main(int argc, string argv[]) +{ + // Check for invalid usage + if (argc < 2) + { + printf("Usage: plurality [candidate ...]\n"); + return 1; + } + + // Populate array of candidates + candidate_count = argc - 1; + if (candidate_count > MAX) + { + printf("Maximum number of candidates is %i\n", MAX); + return 2; + } + for (int i = 0; i < candidate_count; i++) + { + candidates[i].name = argv[i + 1]; + candidates[i].votes = 0; + } + + int voter_count = get_int("Number of voters: "); + + // Loop over all voters + for (int i = 0; i < voter_count; i++) + { + string name = get_string("Vote: "); + + // Check for invalid vote + if (!vote(name)) + { + printf("Invalid vote.\n"); + } + } + + // Display winner of election + print_winner(); +} + +// Update vote totals given a new vote +bool vote(string name) +{ + + for (int i = 0; i < candidate_count; i++) + { + if (strcmp(candidates[i].name, name) == 0) + { + candidates[i].votes += 1; + return true; + } + } + + return false; +} + +// Print the winner (or winners) of the election +void print_winner(void) +{ + + int winner = 0; + + for (int i = 0; i < candidate_count; i++) + { + if (candidates[i].votes > winner) + { + winner = candidates[i].votes; + } + } + + for (int i = 0; i < candidate_count; i++) + { + if (candidates[i].votes == winner) + { + printf("%s\n", candidates[i].name); + } + } + + return; +} \ No newline at end of file diff --git a/2023_CS50X/population.c b/2023_CS50X/population.c new file mode 100644 index 0000000..4003e20 --- /dev/null +++ b/2023_CS50X/population.c @@ -0,0 +1,38 @@ +#include +#include + +int main() +{ + // TODO: Prompt for start size + int start; + do + { + start = get_int("Start size over 9: "); + } + while (start < 9); + + + + // TODO: Prompt for end size + int end; + do + { + end = get_int("End size: "); + } + while (end < start); + + // TODO: Calculate number of years until we reach threshold + int years = 0; + + while (start < end) + { + start = start + (start / 3) - (start / 4); + years++; + } + + // TODO: Print number of years + printf("Years: %i\n", years); + + + +} \ No newline at end of file diff --git a/2023_CS50X/readability.c b/2023_CS50X/readability.c new file mode 100644 index 0000000..81e88f9 --- /dev/null +++ b/2023_CS50X/readability.c @@ -0,0 +1,55 @@ + #include +#include +#include +#include +#include + +int main(void) +{ + // Get Text + string text = get_string("Text: "); + + // Letter, word, sentence count + double lettercount = 0; + double wordcount = 1; + double sentencecount = 0; + + for (int i = 0, len = strlen(text); i < len; i++) + { + if ((text[i] >= 65 && text[i] <= 90) || (text[i] >= 97 && text[i] <= 122)) + { + lettercount += 1; + } + else if (text[i] == 32) + { + wordcount += 1; + } + else if (text[i] == 33 || text[i] == 63 || text[i] == 46) + { + sentencecount += 1; + } + else + { + continue; + } + } + + // Calculate Index + double L = lettercount / wordcount * 100.0; + double S = sentencecount / wordcount * 100.0; + double index = 0.0588 * L - 0.296 * S - 15.8; + + // Print conditions + if (index <= 1) + { + printf("Before Grade 1\n"); + } + else if (index >= 16) + { + printf("Grade 16+\n"); + } + else + { + printf("Grade %i\n", (int) round(index)); + } +} \ No newline at end of file diff --git a/2023_CS50X/readability.py b/2023_CS50X/readability.py new file mode 100644 index 0000000..a30e092 --- /dev/null +++ b/2023_CS50X/readability.py @@ -0,0 +1,31 @@ +# TODO + +print('Text: ') + +text = str(input()) + +lettercount = 0 +wordcount = 0 +sentencecount = 0 + +for i in range(len(text)): + if (65 <= ord(text[i]) <= 90) or (97 <= ord(text[i]) <= 122): + lettercount += 1 + elif ord(text[i]) == 32: + wordcount += 1 + elif ord(text[i]) in [33, 63, 46]: + sentencecount += 1 + else: + continue + +wordcount += 1 +L = lettercount / wordcount * 100 +S = sentencecount / wordcount * 100 +index = 0.0588 * L - 0.296 * S - 15.8 + +if index <= 1: + print("Before Grade 1") +elif index >= 16: + print("Grade 16+") +else: + print(f"Grade {round(index)}") \ No newline at end of file diff --git a/2023_CS50X/recover.c b/2023_CS50X/recover.c new file mode 100644 index 0000000..afbd620 --- /dev/null +++ b/2023_CS50X/recover.c @@ -0,0 +1,51 @@ +#include +#include +#include +typedef uint8_t BYTE; + +int main(int argc, char *argv[]) +{ + + if (argc != 2) + { + printf("Usage: ./recover IMAGE\n"); + return 1; + } + + FILE *file = fopen(argv[1], "r"); + FILE *img = NULL; + BYTE buffer[512]; + int img_number = 0; + char img_name[8]; + + while (fread(&buffer, 512, 1, file) == 1) + { + if (buffer[0] == 0xff && + buffer[1] == 0xd8 && + buffer[2] == 0xff && + (buffer[3] & 0xf0) == 0xe0) + { + + if (!(img_number == 0)) + { + fclose(img); + } + + sprintf(img_name, "%03i.jpg", img_number); + img = fopen(img_name, "w"); + img_number ++; + + } + + if (!(img_number == 0)) + { + fwrite(&buffer, 512, 1, img); + } + + } + + fclose(file); + fclose(img); + return 0; + +} \ No newline at end of file diff --git a/2023_CS50X/runoff.c b/2023_CS50X/runoff.c new file mode 100644 index 0000000..bedc625 --- /dev/null +++ b/2023_CS50X/runoff.c @@ -0,0 +1,227 @@ +#include +#include +#include + + +// Max voters and candidates +#define MAX_VOTERS 100 +#define MAX_CANDIDATES 9 + +// preferences[i][j], j is the preference for voter i +int preferences[MAX_VOTERS][MAX_CANDIDATES]; + +// Candidates have name, vote count, eliminated status +typedef struct +{ + string name; + int votes; + bool eliminated; +} +candidate; + +// Array of candidates +candidate candidates[MAX_CANDIDATES]; + +// Numbers of voters and candidates +int voter_count; +int candidate_count; + +// Function prototypes +bool vote(int voter, int rank, string name); +void tabulate(void); +bool print_winner(void); +int find_min(void); +bool is_tie(int min); +void eliminate(int min); + +int main(int argc, string argv[]) +{ + // Check for invalid usage + if (argc < 2) + { + printf("Usage: runoff [candidate ...]\n"); + return 1; + } + + // Populate array of candidates + candidate_count = argc - 1; + if (candidate_count > MAX_CANDIDATES) + { + printf("Maximum number of candidates is %i\n", MAX_CANDIDATES); + return 2; + } + for (int i = 0; i < candidate_count; i++) + { + candidates[i].name = argv[i + 1]; + candidates[i].votes = 0; + candidates[i].eliminated = false; + } + + voter_count = get_int("Number of voters: "); + if (voter_count > MAX_VOTERS) + { + printf("Maximum number of voters is %i\n", MAX_VOTERS); + return 3; + } + + // Keep querying for votes + for (int i = 0; i < voter_count; i++) + { + + // Query for each rank + for (int j = 0; j < candidate_count; j++) + { + string name = get_string("Rank %i: ", j + 1); + + // Record vote, unless it's invalid + if (!vote(i, j, name)) + { + printf("Invalid vote.\n"); + return 4; + } + } + + printf("\n"); + } + + // Keep holding runoffs until winner exists + while (true) + { + // Calculate votes given remaining candidates + tabulate(); + + // Check if election has been won + bool won = print_winner(); + if (won) + { + break; + } + + // Eliminate last-place candidates + int min = find_min(); + bool tie = is_tie(min); + + // If tie, everyone wins + if (tie) + { + for (int i = 0; i < candidate_count; i++) + { + if (!candidates[i].eliminated) + { + printf("%s\n", candidates[i].name); + } + } + break; + } + + // Eliminate anyone with minimum number of votes + eliminate(min); + + // Reset vote counts back to zero + for (int i = 0; i < candidate_count; i++) + { + candidates[i].votes = 0; + } + } + return 0; +} + +// Record preference if vote is valid +bool vote(int voter, int rank, string name) +{ + for (int i = 0; i < candidate_count; i++) + { + if (strcmp(candidates[i].name, name) == 0) + { + preferences[voter][rank] = i; + return true; + } + } + return false; +} + +// Tabulate votes for non-eliminated candidates +void tabulate(void) +{ + for (int i = 0; i < voter_count; i++) + { + for (int j = 0; j < candidate_count; j++) + { + if (preferences[i][0] == j && candidates[j].eliminated == false) + { + candidates[j].votes += 1; + } + } + } + return; +} + +// Print the winner of the election, if there is one +bool print_winner(void) +{ + int winner = 0; + + for (int i = 0; i < candidate_count; i++) + { + if (candidates[i].votes > winner) + { + winner = candidates[i].votes; + } + } + + for (int i = 0; i < candidate_count; i++) + { + if (candidates[i].votes == winner && candidates[i].votes > (voter_count / 2)) + { + printf("%s\n", candidates[i].name); + return true; + } + } + return false; +} + +// Return the minimum number of votes any remaining candidate has +int find_min(void) +{ + int min = voter_count; + for (int i = 0; i < candidate_count; i++) + { + if ( candidates[i].votes < min && candidates[i].eliminated == false) + { + min = candidates[i].votes; + } + } + return min; +} + +// Return true if the election is tied between all candidates, false otherwise +bool is_tie(int min) +{ + + for (int i = 0; i < candidate_count; i++) + { + + if (candidates[i].votes > min && candidates[i].eliminated == false) + { + return false; + } + + } + + return true; +} + +// Eliminate the candidate (or candidates) in last place +void eliminate(int min) +{ + for (int i = 0; i < candidate_count; i++) + { + if (candidates[i].votes <= min && candidates[i].eliminated == false) + { + candidates[i].eliminated = true; + } + + } + + return; +} \ No newline at end of file diff --git a/2023_CS50X/scrabble.c b/2023_CS50X/scrabble.c new file mode 100644 index 0000000..d8805ff --- /dev/null +++ b/2023_CS50X/scrabble.c @@ -0,0 +1,53 @@ +#include +#include +#include +#include + +// Points assigned to each letter of the alphabet +int POINTS[] = {1, 3, 3, 2, 1, 4, 2, 4, 1, 8, 5, 1, 3, 1, 1, 3, 10, 1, 1, 1, 1, 4, 4, 8, 4, 10}; + +int compute_score(string word); + +int main(void) +{ + // Get input words from both players + string word1 = get_string("Player 1: "); + string word2 = get_string("Player 2: "); + + // Score both words + int score1 = compute_score(word1); + int score2 = compute_score(word2); + + // TODO: Print the winner + if (score1 > score2) + { + printf("Player 1 wins!"); + } + else if (score1 < score2) + { + printf("Player 2 wins!"); + } + else + { + printf("Tie!"); + } +} + +int compute_score(string word) +{ + // TODO: Compute and return score for string + int score = 0; + + for (int i = 0, len = strlen(word); i < len; i++) + { + if (isupper(word[i])) + { + score += POINTS[word[i] - 'A']; + } + else if (islower(word[i])) + { + score += POINTS[word[i] - 'a']; + } + } + return score; +} diff --git a/2023_CS50X/speller.c b/2023_CS50X/speller.c new file mode 100644 index 0000000..39e22eb --- /dev/null +++ b/2023_CS50X/speller.c @@ -0,0 +1,196 @@ +// Implements a spell-checker + +#include +#include +#include +#include + +#include "dictionary.h" + +// Undefine any definitions +#undef calculate +#undef getrusage + +// Default dictionary +#define DICTIONARY "dictionaries/large" + +// Prototype +double calculate(const struct rusage *b, const struct rusage *a); + +int main(int argc, char *argv[]) +{ + // Check for correct number of args + if (argc != 2 && argc != 3) + { + printf("Usage: ./speller [DICTIONARY] text\n"); + return 1; + } + + // Structures for timing data + struct rusage before, after; + + // Benchmarks + double time_load = 0.0, time_check = 0.0, time_size = 0.0, time_unload = 0.0; + + // Determine dictionary to use + char *dictionary = (argc == 3) ? argv[1] : DICTIONARY; + + // Load dictionary + getrusage(RUSAGE_SELF, &before); + bool loaded = load(dictionary); + getrusage(RUSAGE_SELF, &after); + + // Exit if dictionary not loaded + if (!loaded) + { + printf("Could not load %s.\n", dictionary); + return 1; + } + + // Calculate time to load dictionary + time_load = calculate(&before, &after); + + // Try to open text + char *text = (argc == 3) ? argv[2] : argv[1]; + FILE *file = fopen(text, "r"); + if (file == NULL) + { + printf("Could not open %s.\n", text); + unload(); + return 1; + } + + // Prepare to report misspellings + printf("\nMISSPELLED WORDS\n\n"); + + // Prepare to spell-check + int index = 0, misspellings = 0, words = 0; + char word[LENGTH + 1]; + + // Spell-check each word in text + char c; + while (fread(&c, sizeof(char), 1, file)) + { + // Allow only alphabetical characters and apostrophes + if (isalpha(c) || (c == '\'' && index > 0)) + { + // Append character to word + word[index] = c; + index++; + + // Ignore alphabetical strings too long to be words + if (index > LENGTH) + { + // Consume remainder of alphabetical string + while (fread(&c, sizeof(char), 1, file) && isalpha(c)); + + // Prepare for new word + index = 0; + } + } + + // Ignore words with numbers (like MS Word can) + else if (isdigit(c)) + { + // Consume remainder of alphanumeric string + while (fread(&c, sizeof(char), 1, file) && isalnum(c)); + + // Prepare for new word + index = 0; + } + + // We must have found a whole word + else if (index > 0) + { + // Terminate current word + word[index] = '\0'; + + // Update counter + words++; + + // Check word's spelling + getrusage(RUSAGE_SELF, &before); + bool misspelled = !check(word); + getrusage(RUSAGE_SELF, &after); + + // Update benchmark + time_check += calculate(&before, &after); + + // Print word if misspelled + if (misspelled) + { + printf("%s\n", word); + misspellings++; + } + + // Prepare for next word + index = 0; + } + } + + // Check whether there was an error + if (ferror(file)) + { + fclose(file); + printf("Error reading %s.\n", text); + unload(); + return 1; + } + + // Close text + fclose(file); + + // Determine dictionary's size + getrusage(RUSAGE_SELF, &before); + unsigned int n = size(); + getrusage(RUSAGE_SELF, &after); + + // Calculate time to determine dictionary's size + time_size = calculate(&before, &after); + + // Unload dictionary + getrusage(RUSAGE_SELF, &before); + bool unloaded = unload(); + getrusage(RUSAGE_SELF, &after); + + // Abort if dictionary not unloaded + if (!unloaded) + { + printf("Could not unload %s.\n", dictionary); + return 1; + } + + // Calculate time to unload dictionary + time_unload = calculate(&before, &after); + + // Report benchmarks + printf("\nWORDS MISSPELLED: %d\n", misspellings); + printf("WORDS IN DICTIONARY: %d\n", n); + printf("WORDS IN TEXT: %d\n", words); + printf("TIME IN load: %.2f\n", time_load); + printf("TIME IN check: %.2f\n", time_check); + printf("TIME IN size: %.2f\n", time_size); + printf("TIME IN unload: %.2f\n", time_unload); + printf("TIME IN TOTAL: %.2f\n\n", + time_load + time_check + time_size + time_unload); + + // Success + return 0; +} + +// Returns number of seconds between b and a +double calculate(const struct rusage *b, const struct rusage *a) +{ + if (b == NULL || a == NULL) + { + return 0.0; + } + else + { + return ((((a->ru_utime.tv_sec * 1000000 + a->ru_utime.tv_usec) - + (b->ru_utime.tv_sec * 1000000 + b->ru_utime.tv_usec)) + + ((a->ru_stime.tv_sec * 1000000 + a->ru_stime.tv_usec) - + (b->ru_stime.tv_sec * 1000000 + b->ru_stime.tv_usec))) + / 1000000.0); + } +} diff --git a/2023_CS50X/test.c b/2023_CS50X/test.c new file mode 100644 index 0000000..834df17 --- /dev/null +++ b/2023_CS50X/test.c @@ -0,0 +1,30 @@ +#include +#include +#include + +int main(int argc, char *argv[]) +{ + + int BLOCK_SIZE = 512; + typedef uint8_t BYTE; + BYTE buffer[BLOCK_SIZE]; + + FILE *file = fopen("card.raw", "r"); + + if (argc != 2) + { + printf("Usage: ./recover card.raw\n"); + return 1; + } + + while (fread(&buffer, 1, BLOCK_SIZE, file) == BLOCK_SIZE) + { + if (buffer[0] == 0xff && buffer[1] == 0xd8 && buffer[2] == 0xff && (buffer[3] & 0xf0) == 0xe0) + { + printf("%i",buffer) + } + } + + fclose(file); + return 0; +} \ No newline at end of file diff --git a/2023_CS50X/tournament.py b/2023_CS50X/tournament.py new file mode 100644 index 0000000..8c55e04 --- /dev/null +++ b/2023_CS50X/tournament.py @@ -0,0 +1,69 @@ +# Simulate a sports tournament + +import csv +import sys +import random + +# Number of simluations to run +N = 1000 + + +def main(): + + # Ensure correct usage + if len(sys.argv) != 2: + sys.exit("Usage: python tournament.py FILENAME") + + teams = [] + counts = {} + + # TODO: Read teams into memory from file + with open(sys.argv[1], 'r') as csvfile: + reader = csv.DictReader(csvfile) + for row in reader: + teams.append({'team': row['team'], 'rating': int(row['rating'])}) + counts[row['team']] = 0 + + # TODO: Simulate N tournaments and keep track of win counts + for _ in range(N): + winner = simulate_tournament(teams.copy()) + counts[winner] += 1 + + # Print each team's chances of winning, according to simulation + for team in sorted(counts, key=lambda team: counts[team], reverse=True): + print(f"{team}: {counts[team] * 100 / N:.1f}% chance of winning") + + +def simulate_game(team1, team2): + """Simulate a game. Return True if team1 wins, False otherwise.""" + rating1 = team1["rating"] + rating2 = team2["rating"] + probability = 1 / (1 + 10 ** ((rating2 - rating1) / 600)) + return random.random() < probability + + +def simulate_round(teams): + """Simulate a round. Return a list of winning teams.""" + winners = [] + + # Simulate games for all pairs of teams + for i in range(0, len(teams), 2): + if simulate_game(teams[i], teams[i + 1]): + winners.append(teams[i]) + else: + winners.append(teams[i + 1]) + + return winners + + +def simulate_tournament(teams): + """Simulate a tournament. Return name of winning team.""" + # TODO + + while len(teams) > 1: + teams = simulate_round(teams) + return teams[0]['team'] + + +if __name__ == "__main__": + main() diff --git a/2023_Informatik_b/1989.cpp b/2023_Informatik_b/1989.cpp new file mode 100644 index 0000000..f81ebb9 --- /dev/null +++ b/2023_Informatik_b/1989.cpp @@ -0,0 +1,44 @@ +#include +#include +#include + +int main() { + int vector_size; + std::vector vec; + + std::cout << "Bitte geben Sie die Größe des Vektors an: "; + std::cin >> vector_size; + + std::cout << "Geben Sie die Werte des Vektors ein:" << std::endl; + for (int i = 0; i < vector_size; ++i) { + int input; + std::cin >> input; + vec.push_back(input); + } + + int count_1 = 0; + int count_3 = 0; + bool found = false; + + for (int i = 0; i < vector_size; ++i) { + if (vec[i] == 1) count_1++; + if (vec[i] == 3) count_3++; + + if (i + 3 < vector_size) { + if (vec[i] == 1 && vec[i + 1] == 9 && vec[i + 2] == 8 && vec[i + 3] == 9) { + found = true; + } + } + } + + std::cout << "Anzahl der 1en im Vektor: " << count_1 << std::endl; + std::cout << "Anzahl der 3en im Vektor: " << count_3 << std::endl; + + if (found) { + std::cout << "Das Album \"1989\" von Taylor Swift ist ein sehr gutes Album." << std::endl; + } else { + std::cout << "\"1989\" kommt nicht vor." << std::endl; + } + + return 0; +} diff --git a/2023_Informatik_b/Dreisummenproblem.cpp b/2023_Informatik_b/Dreisummenproblem.cpp new file mode 100644 index 0000000..4a21de4 --- /dev/null +++ b/2023_Informatik_b/Dreisummenproblem.cpp @@ -0,0 +1,66 @@ +#include +#include + +void bubbleSort(std::vector& zahlen) { + unsigned n = zahlen.size(); + for (unsigned i = 0; i < n - 1; ++i) { + for (unsigned j = 0; j < n - i - 1; ++j) { + if (zahlen[j] > zahlen[j + 1]) { + std::swap(zahlen[j], zahlen[j + 1]); + } + } + } +} + +bool binareSuche(std::vector& zahlen, int start, int ende, int ziel) { + while (start <= ende) { + int mitte = start + (ende - start) / 2; + if (zahlen[mitte] == ziel) { + return true; + } else if (zahlen[mitte] < ziel) { + start = mitte + 1; + } else { + ende = mitte - 1; + } + } + return false; +} + +/* +Funktion: sucheTriplets(std::vector& X) +Voraussetzungen: +- Die Funktion nimmt als Argument einen Vektor von Ganzzahlen (std::vector). +- Der Vektor kann leer sein oder eine beliebige Anzahl von Ganzzahlen enthalten. +- Die Zahlen im Vektor können positiv, negativ oder null sein. +- Es wird angenommen, dass die Größe des Vektors in einem Bereich liegt, der für die verfügbare Speicherkapazität und Rechenleistung des Systems handhabbar ist. + +Ergebnis: +- Die Funktion gibt kein Ergebnis zurück (void Rückgabetyp). +- Die Funktion druckt alle Tripel von Zahlen in der Eingabesequenz aus, für die die Summe der ersten beiden Zahlen gleich der dritten Zahl ist. Jedes Tripel wird in der Form "(a, b, c)" ausgegeben, wobei "a + b = c" gilt. +- Wenn keine solchen Tripel existieren, gibt die Funktion nichts aus. + +Effekte: +- Die Funktion sortiert den Eingabevektor. Daher wird der Zustand des Eingabevektors geändert: die Elemente werden in aufsteigender Reihenfolge angeordnet. +- Die Funktion hat keinen weiteren Seiteneffekt auf den Zustand des Programms. Sie ändert keine globalen Variablen und hat keine Auswirkungen auf den Zustand des Systems außerhalb des Programms. +- Die Funktion kann eine beträchtliche Menge an Ausgabe produzieren, wenn viele gültige Tripel existieren. Dies könnte die Leistung des Systems beeinträchtigen, wenn die Ausgabe in eine Datei umgeleitet wird oder wenn das System über begrenzte Ressourcen für die Ausgabeverwaltung verfügt. +- Die Funktion verwendet zusätzlichen Speicher für das unordered_set, das zur Speicherung der Elemente des Eingabevektors verwendet wird. Die Menge des benötigten Speichers ist proportional zur Größe des Eingabevektors. +*/ + +void findeTripel(std::vector& zahlen) { + bubbleSort(zahlen); + + for (unsigned i = 0; i < zahlen.size(); ++i) { + for (unsigned j = i + 1; j < zahlen.size(); ++j) { + int summe = zahlen[i] + zahlen[j]; + if (binareSuche(zahlen, 0, zahlen.size() - 1, summe)) { + std::cout << "(" << zahlen[i] << ", " << zahlen[j] << ", " << summe << ")\n"; + } + } + } +} + +int main() { + std::vector zahlen = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; + findeTripel(zahlen); + return 0; +} \ No newline at end of file diff --git a/2023_Informatik_b/Laufzeitanalyse.cpp b/2023_Informatik_b/Laufzeitanalyse.cpp new file mode 100644 index 0000000..d866d0e --- /dev/null +++ b/2023_Informatik_b/Laufzeitanalyse.cpp @@ -0,0 +1,63 @@ + +/* +(a) hat eine Zeitkomplexität von O(n), wobei n die Anzahl der Elemente in vec ist. +Das liegt daran, dass jede Operation in der for-Schleife in konstanter Zeit ausgeführt wird +und die Schleife genau n-Mal durchlaufen wird. +*/ + + int vector_summe(vector& vec){ + int sum = 0; + for (unsigned i =0; i < vec.size(); i++){ + sum +=vec[i]; + } + return sum; +} + +/* +(b) hat eine Zeitkomplexität von O(n^2), da es zwei verschachtelte Schleifen gibt, +die jeweils bis zur Größe des Vektors laufen. +Dies bedeutet, dass für jedes Element in vec alle Elemente innerhalb des Elementes einmal betrachtet werden, +was zu n*n Operationen führt. +*/ + +vector> pairs(vector& vec){ + vector> returnpairs; + pair p; + for(unsigned i = 0; i> sorted_pairs(vector vec1, vector vec2){ + vector> returnpairs; + pair p; + mergeSort(vec1); + mergeSort(vec2); + for(unsigned i = 0; i < vec1.size(); i++){ + for(unsigned j = 0; j < vec2.size(); j++){ + p = {vec1[i], vec2[j]}; + returnpairs.push_back(p); + } + } +} + + + + + + diff --git a/2023_Informatik_b/angestellter.cpp b/2023_Informatik_b/angestellter.cpp new file mode 100644 index 0000000..85fcb32 --- /dev/null +++ b/2023_Informatik_b/angestellter.cpp @@ -0,0 +1,81 @@ +#include +#include +#include + +enum Abteilung { + IT, + FINANZ, + MARKETING, + PERSONAL, + PRODUKTION +}; + +struct angestellter { + std::string name; + int personalnummer; + Abteilung abteilung; + double gehalt; +}; + +angestellter angestellter_eingeben(); +std::vector abteilung_check(std::vector vec, Abteilung abt); + +int main() { + + angestellter beispielAngestellter = angestellter_eingeben(); + + std::cout << std::endl << "Angestellter:" << std::endl; + std::cout << "Name: " << beispielAngestellter.name << std::endl; + std::cout << "Personalnummer: " << beispielAngestellter.personalnummer << std::endl; + std::cout << "Abteilung: " << beispielAngestellter.abteilung << std::endl; + std::cout << "Gehalt: " << beispielAngestellter.gehalt << std::endl; + + angestellter kollege1 = {"Hans Wurst", 678, PRODUKTION, 3550.5}; + angestellter kollege2 = {"Scrooge McDough", 022, FINANZ, 4702}; + angestellter kollege3 = {"Ninja Scripter", 337, IT, 2500}; + angestellter kollege4 = {"Snake Oil", 888, MARKETING, 1800}; + angestellter kollege5 = {"Overlord", 007, PERSONAL, 5600}; + + std::vector belegschaft = {kollege1, kollege2, kollege3, kollege4, kollege5}; + std::vector filtered = abteilung_check(belegschaft, beispielAngestellter.abteilung); + + // Display filtered employees or a message if no matching employees are found. + if (!filtered.empty()) { + for (const auto& ang : filtered) { + std::cout << "Filtered employee: " << ang.name << std::endl; + } + } else { + std::cout << "No matching employees found." << std::endl; + } + + return 0; +} + +std::vector abteilung_check(std::vector vec, Abteilung abt) { +std::vector division; + for (const auto &ang : vec) { + if (ang.abteilung == abt) { + division.push_back(ang); + } + } + return division; +} + +angestellter angestellter_eingeben() { + angestellter neuerAngestellter; + int abteilungWahl; + std::cout << "Name: "; + std::getline(std::cin, neuerAngestellter.name); + std::cout << "Personalnummer: "; + std::cin >> neuerAngestellter.personalnummer; + + std::cout << "Abteilung (0: IT, 1: FINANZ, 2: MARKETING, 3: PERSONAL, 4: PRODUKTION): "; + std::cin >> abteilungWahl; + neuerAngestellter.abteilung = static_cast(abteilungWahl); + + std::cout << "Gehalt: "; + std::cin >> neuerAngestellter.gehalt; + std::cin.ignore(); + + return neuerAngestellter; +} diff --git a/2023_Informatik_b/arithmetik.cpp b/2023_Informatik_b/arithmetik.cpp new file mode 100644 index 0000000..73f3c1d --- /dev/null +++ b/2023_Informatik_b/arithmetik.cpp @@ -0,0 +1,35 @@ +/* Informatik B - Sommersemester 2022 +Vorlesung am 21.04.2022 +Katharina Klost + +Beispiele zu arithmetischen Operationen +*/ + +#include + +int main(){ + /* Unterschiede zwische Post- und Preinkrement: + + Beim Postinkrement wird der Wert *erst* ausgewertet und dann erhöht, + daher wird in der zweiten Zeile noch einmal 2 und erst in der dritten + Zeile 3 ausgegeben. + Bei Preinkrement wird erst erhöht und dann ausgegeben, daher wird in der + vierten und fünften Zeile 4 ausgegeben. + */ + int n =2; + std::cout << "Vor Postinkrement " << n << std::endl; + std::cout << "Postinkrement " << n++ << std::endl; + std::cout << "Nach Postinkrement " << n << std::endl; + std::cout << "Preinkrement " << ++n << std::endl; + std::cout << "Nach Preinkrement " << n << std::endl; + + // += als vereinfachte Schreibweise für n = n + 3; + n+=3; + std::cout << n << std::endl; + + // k und k1 haben auf Grund der Bindunststärken den gleichen Wert + int k1 = 7*4 + ++n/4; + int k = (7*4)+ ((++n) / 4); + std::cout << "k1: " << k1 << ", k: " < +using namespace std; + + +int main(){ + int n1 = 10; + int n2 = 20; + int n3 = n1/n2; + float f1 = 10; + float f2 = f1 + 10; + float f3 = f1/f2; + + cout << "n3: " << n3 << endl; + cout << "f3: " << f3 << endl; + + f3 += 3; + cout << "f3: " << f3++ << endl; + cout << "f3: mit postincr " << f3++ << endl; + cout << "f3: mit preincr " << ++f3 << endl; + + bool comp1 = 2*5+5*2 == n2; + n2 = n2*2; + bool comp2 = 2*5+5*2 == n2; + bool comp3 = n3 < f3; + + bool comp4 = comp1 && comp3 || comp2; + cout << "comp1, comp2, comp3, comp4: " << comp1 << ", " << comp2 << ", " << comp3 << ", " << comp4 << endl; + +} diff --git a/2023_Informatik_b/binarysearch.cpp b/2023_Informatik_b/binarysearch.cpp new file mode 100644 index 0000000..e889e92 --- /dev/null +++ b/2023_Informatik_b/binarysearch.cpp @@ -0,0 +1,34 @@ +// g++ -std=c++14 -Wall -Wextra -Werror -pedantic ./w4/binarysearch.cpp -o ./bin/binarysearch +#include +#include +int binarySearch(int query, std::vector &elems) +{ + unsigned low = 0; + unsigned high = elems.size() - 1; + unsigned index = (low + high) / 2; + while (low < high) + { + if (query == elems[index]) + { + return elems[index]; + } + if (query < elems[index]) + { + high = index - 1; + } + else + { + low = index + 1; + } + index = (low + high) / 2; + } + return elems[index]; +} +int main() +{ + std::vector searchtest = {1, 4, 6, 12, 19, 22, 34, 36, 100}; + std::cout << "Binärsuche: " << binarySearch(36, searchtest) << std::endl; + std::cout << "Binärsuche: " << binarySearch(1000, searchtest) << std::endl; + std::cout << "Binärsuche: " << binarySearch(0, searchtest) << std::endl; + std::cout << "Binärsuche: " << binarySearch(5, searchtest) << std::endl; +} \ No newline at end of file diff --git a/2023_Informatik_b/bubblesort.cpp b/2023_Informatik_b/bubblesort.cpp new file mode 100644 index 0000000..4bcf822 --- /dev/null +++ b/2023_Informatik_b/bubblesort.cpp @@ -0,0 +1,53 @@ +// g++ -std=c++14 -Wall -Wextra -Werror -pedantic ./w4/bubblesort.cpp -o ./bin/bubblesort + + +#include +#include + +void bubbleSort(std::vector& arr, bool ascending) { + int n = arr.size(); + + for (int i = 0; i < n - 1; ++i) { + bool swapped = false; + for (int j = 0; j < n - i - 1; ++j) { + if ((arr[j] > arr[j + 1] && ascending) || (arr[j] < arr[j + 1] && !ascending)) { + int temp = arr[j]; + arr[j] = arr[j + 1]; + arr[j + 1] = temp; + swapped = true; + } + } + + if (!swapped) { + break; + } + } +} + +int main() { + int arr[] = {30, 10, 25, 100, 5, 16}; + int n = sizeof(arr) / sizeof(arr[0]); + std::vector numbers(arr, arr + n); + bool ascending = true; + + // Ascending sort + bubbleSort(numbers, ascending); + + std::cout << "Sorted list (ascending): "; + for (unsigned i = 0; i < numbers.size(); ++i) { + std::cout << numbers[i] << " "; + } + std::cout << std::endl; + + // Descending sort + ascending = false; + bubbleSort(numbers, ascending); + + std::cout << "Sorted list (descending): "; + for (unsigned i = 0; i < numbers.size(); ++i) { + std::cout << numbers[i] << " "; + } + std::cout << std::endl; + + return 0; +} diff --git a/2023_Informatik_b/call_by_reference_pointer.cpp b/2023_Informatik_b/call_by_reference_pointer.cpp new file mode 100644 index 0000000..dc55adf --- /dev/null +++ b/2023_Informatik_b/call_by_reference_pointer.cpp @@ -0,0 +1,27 @@ +// g++ -std=c++14 -Wall -Wextra -Werror -pedantic ./w7/call_by_reference_pointer.cpp -o ./bin/call_by_reference_pointer && ./bin/call_by_reference_pointer +#include + +/* +Voraussetzungen: +Ein gültiger Zeiger auf ein Integer-Objekt muss als Argument an die Funktion übergeben werden. +Der Zeiger darf nicht null und darf nicht auf Speicher zeigen, der nicht verändert werden darf (z.B. konstante Daten oder bereits freigegebener Speicher). + +Ergebnis: +Die Funktion hat keinen Rückgabewert. + +Effekt: +Die Funktion verändert den Wert der Integer-Variablen, auf die der übergebene Zeiger zeigt, zu 10. +*/ + +void aendern(int *ptr) +{ + *ptr = 10; +} + +int main() +{ + int x = 5; + std::cout << "Davor: " << x << std::endl; + aendern(&x); + std::cout << "Danach: " << x << std::endl; +} \ No newline at end of file diff --git a/2023_Informatik_b/collatz.cpp b/2023_Informatik_b/collatz.cpp new file mode 100644 index 0000000..35d858a --- /dev/null +++ b/2023_Informatik_b/collatz.cpp @@ -0,0 +1,62 @@ +/* Informatik B - Sommersemester 2023 +Vorlesung am 03.05.2023 +Katharina Klost + +Weiteres Beispiel zur Rekursion +*/ + +#include + +/* +Voraussetzung: n ist größer als 0 +Ergebnis: Wenn Collatz mit n/2 terminiert ist true geliefert +Effekt: keiner +*/ +bool c1(unsigned); + + +/* +Voraussetzung: n ist größer als 0 +Ergebnis: Wenn Collatz mit 3*n+1 terminiert ist true geliefert +Effekt: keiner +*/ +bool c2(unsigned); + +/* +Voraussetzung: n ist größer als 0 +Ergebnis: true, wenn die Collatzfolge von n aus terminiert +Effekt: gibt aktuellen Wert n aus +*/ +bool collatz(unsigned); + +bool c1(unsigned n){ + return collatz(n/2); +} + +bool collatz(unsigned n){ + std::cout << n << std::endl; + if (n==1){ + return true; + } + // !(n%2) ist true, wenn n gerade ist. Dies kann wie folgt gesehen werden: + // für gerade n ist n%2 == 0. Das Anwenden von ! interpretiert die 0 dann als + // false, dieses wird negiert und damit wird der Ausdruck zu true ausgewertet. + // Etwas länger aber evtl besser zu lesen wär (n%2 == 0). + if (!(n%2)){ + return c1(n); + }else{ // n ungerade + return c2(n); + } +} + +bool c2(unsigned n){ + return collatz(3*n+1); +} + +int main(){ + int n; + std::cout << "Gebe eine Zahl ein: "; + std::cin >> n; + collatz(n); + std::cout << "terminated" << std::endl; +} diff --git a/2023_Informatik_b/combination.cpp b/2023_Informatik_b/combination.cpp new file mode 100644 index 0000000..6410c9e --- /dev/null +++ b/2023_Informatik_b/combination.cpp @@ -0,0 +1,54 @@ +/* Informatik B - Sommersemester 2023 +Vorlesung am 28.04.2023 +Katharina Klost + +Beispiele zur Kombination von zusammengesetzen Datentypen +*/ + +#include +#include +#include + +enum class wohnart{HAUS,WOHNUNG}; + +struct person{ + std::string name; + wohnart wa; + unsigned telefonnummer; +}; + +int main(){ + + // eine person hat unter anderem einen enum als Feld und kann in einem + // vector gespeichert werden + std::vector telefonbuch = {}; + + for(unsigned i=0; i< 30; i++){ + person p = {"Name"+std::to_string(i) , static_cast((3*i-1)%2), (i*300+23+i/2)}; + telefonbuch.push_back(p); +} + +person eintrag; +for(unsigned i= 0 ; i< telefonbuch.size(); i++){ + eintrag = telefonbuch[i]; + if(eintrag.wa == wohnart::HAUS){ + std::cout << eintrag.name << " wohnt in einem Haus" << std::endl; + } +} + +std::string query; +std::cout << "Welcher Name soll gesucht werden? " ; +std::cin >> query; +bool found = false; +for (unsigned i= 0; i< telefonbuch.size()&&!found; i++){ + eintrag = telefonbuch[i]; + if (eintrag.name == query){ + std::cout << eintrag.name << " hat Telefonnummer: "<< eintrag.telefonnummer << std::endl; + found = true; + } +} +if (!found){ + std::cout << query << " ist nicht im Telefonbuch enthalten" << std::endl; +} + +} diff --git a/2023_Informatik_b/datentypen.cpp b/2023_Informatik_b/datentypen.cpp new file mode 100644 index 0000000..c18f4cb --- /dev/null +++ b/2023_Informatik_b/datentypen.cpp @@ -0,0 +1,73 @@ +/* Informatik B - Sommersemester 2022 +Vorlesung am 21.04.2022 +Katharina Klost + +Beispiele zu Datentypen +*/ + + +#include +#include + +int main(){ + //Auf Grund der Wertsemantik wird nur der Inhalt von num 3 verändert + int num2 = 20; + int num3 = num2; + std::cout << "num 2: " << num2 << std::endl; + std::cout << "num 3: " << num3 << std::endl; + num3 = num3 +1; + std::cout << "num 2: " << num2 << std::endl; + std::cout << "num 3: " << num3 << std::endl; + + /*Auch wenn in einem Bool allgeine Werte gespeichert werden können + wird nur 0 für false und 1 für alle Werte != 0 ausgegeben*/ + bool b1 = 12; + std::cout << "b1: " << b1 << std::endl; + std::cout << "Größe von b1: " << sizeof(b1) << std::endl; + + //Da chars intern als Zahlen gespeichert werden, kann mit diesen auch + //gerechnet werden + char c1 = 'A'; + + std::cout << "c1: " << c1 << std::endl; + c1=c1+1; + std::cout << "c1: " << c1 << std::endl; + + //Bei Integern kann es zu einem Überlauf kommen + int n = INT_MAX; + std::cout << n << std::endl; + n= n+1; + std::cout << n << std::endl; + + // Bei Floats kann es wegen Rundungsfehlern zu unerwartetem Verhalten kommen + float x = 0; + for (int i = 0; i < 10; i++){ + x = x + 0.1; + std::cout << "x"< + +int main(){ + int num1; + //num1 ist nur deklariert und nicht initialisiert und daher ist + //der Inhalt hier nicht definiert (irgendein Wert) + std::cout << num1 << std::endl; + + num1 = 10; + + std::cout << num1 << std::endl; +} diff --git a/2023_Informatik_b/enums.cpp b/2023_Informatik_b/enums.cpp new file mode 100644 index 0000000..983641c --- /dev/null +++ b/2023_Informatik_b/enums.cpp @@ -0,0 +1,66 @@ +/* Informatik B - Sommersemester 2023 +Vorlesung am 28.04.2023 +Katharina Klost + +Beispiele zu enums +*/ + +#include + +//Ein enum für Wochentage +enum class Wochentag{ + Montag, + Dienstag, + Mittwoch, + Donnerstag, + Freitag, + Samstag, + Sonntag +}; + + +//Ein enum für Farben +enum class Farbe {rot, gruen, blau, orange}; + +// Ein enum für die Zustände von Ampeln +enum class Ampel {gruen, gelb, rot, gelb_rot}; + +int main(){ + // der Name des enums muss immer angegeben werden, da es Felder mit + // dem gleichen Namen in verschiedenen enums geben kann + Ampel ampel1 = Ampel::gruen; + //enums und switch-case sind eine beliebte Kombination + switch(ampel1){ + case Ampel::gruen: + std::cout << "Kann fahren" << std::endl; + break; + case Ampel::gelb: + std::cout << "Achtung" << std::endl; + break; + case Ampel::rot: + std::cout << "Stop" << std::endl; + break; + case Ampel::gelb_rot: + std::cout << "Achtung" << std::endl; + break; + default: + std::cout <<"Irgendwas anderes" << std::endl; + break; + } + + int number; + std::cout << "Gebe einen Tag ein, (Montag=1,..., Sonntag =7)"; + std::cin >> number; + // da enums intern mit Zahlen dargestellt werden, können Zahlen + // explizit in eine enum umgewandelt werden + Wochentag tag = static_cast(number-1); + + // werden enums verglichen gilt die Reihenfolge in der Definition + if (tag >= Wochentag::Samstag){ + std::cout << "Es ist Wochenende :)" << std::endl; + } + else{ + std::cout << "Es ist ein Arbeitstag :(" << std::endl; + } + +} diff --git a/2023_Informatik_b/euklid.cpp b/2023_Informatik_b/euklid.cpp new file mode 100644 index 0000000..0a88e86 --- /dev/null +++ b/2023_Informatik_b/euklid.cpp @@ -0,0 +1,65 @@ +/* Informatik B - Sommersemester 2023 +Vorlesung am 05.05.2023 +Katharina Klost + +Verschiedene Umsetzungen des euklidischen Algorithmus +*/ + +#include + +/* +Voraussetzung: keine +Effekt: Es werden Informationen zum Ablauf ausgegeben +Ergebnis: Der größte gemeinsame Teiler von a und b ist geliefert +*/ +// Rekursive Umsetzung +unsigned euclid_rec(unsigned a, unsigned b); +//optimierte rekursive Umsetzung +unsigned euclid_rec_opt(unsigned a, unsigned b); +//iterative Umsetzung +unsigned euclid_it(unsigned a, unsigned b); + + +unsigned euclid_rec(unsigned a, unsigned b){ + std::cout << "ggT(" << a << ", " << b << ")" << std::endl; + if (b>a){ + return euclid_rec(b,a); + } + if(b==0){ + return a; + } + return euclid_rec(a-b, b); +} + +// statt immer wieder a-b zu rechnen, bis das Ergebnis kleiner als b ist, +// kann direkt modulu verwendet werden +unsigned euclid_rec_opt(unsigned a, unsigned b){ + std::cout << "ggTopt(" << a<< ", " << b << ")" << std::endl; + if(b==0){ + return a; + } + return euclid_rec_opt(b, a%b); +} + +//iterative Umsetzung des optimierten euklidischen Algorithmus +unsigned euclid_it(unsigned a, unsigned b){ + unsigned newb; + while(b!=0){ + newb = a%b; + a=b; + b = newb; + } + return a; +} + +int main(){ + int a= 12; + int b= 136; + std::cout << "===Rekursiv===" << std::endl; + int ggT= euclid_rec(a , b); + std::cout << "Der ggT von " << a << " und " << b << " ist " << ggT < + +// Fibonacci numbers + +int main() { + + int x; + std::cout << "x-th Fibonacci number?: "; + std::cin >> x; + + int prev = 0; + int curr = 1; + int tmp; + + for (int i = 2; i <= x; ++i) { + tmp = curr; + curr = prev + curr; + prev = tmp; + } + +} diff --git a/2023_Informatik_b/gueltigkeit.cpp b/2023_Informatik_b/gueltigkeit.cpp new file mode 100644 index 0000000..4ec6eb0 --- /dev/null +++ b/2023_Informatik_b/gueltigkeit.cpp @@ -0,0 +1,49 @@ +/* Informatik B - Sommersemester 2023 +Vorlesung am 26.04.2023 +Katharina Klost + +Beispiele zu Gültigkeitsbereichen +*/ + +#include + +int main (){ + + + int variable1; + std::cin >> variable1; + + float variable3; + + if (variable1 == 10){ + float varible2 = 9.1; + std::cout << varible2 << std::endl; + } + else{ + // neue Deklaration von variable3, überschattet die andere variable3 + float variable3 = 10.1; + std::cout << variable3 << std::endl; + } + /* + variable2 ist nur in der ersten if-Bedingung definiert und kann daher + hier nicht verwendet werden. + */ + //std::cout << variable2 << std::endl; + + //Da diese variable3 nur deklariert aber nicht initialisiert wurde, + // ist der Inhalt hier beliebig + std::cout << variable3 << std::endl; + + variable3 = 1.1; + + + while(variable1<10){ + //wird immer wieder neu deklariert + int variable3 = variable1; + std::cout << "variable3 in schleife: " << variable3 << std::endl; + variable1++; + } + std::cout << "variable1 nach erster Schleife: " << variable1 << std::endl; + std::cout << "variable3 nach erster Schleife: " << variable3 << std::endl; + +} diff --git a/2023_Informatik_b/heap.cpp b/2023_Informatik_b/heap.cpp new file mode 100644 index 0000000..70f3b03 --- /dev/null +++ b/2023_Informatik_b/heap.cpp @@ -0,0 +1,107 @@ +// g++ ./w6/heap.cpp -o ./bin/heap && ./bin/heap + +#include +#include + +class MaxHeap { +private: + std::vector heap; + + // Hilfsfunktionen zum Vertauschen von Elementen und zur Berechnung von Eltern- und Kindknotenindizes + void swap(int& a, int& b) { + int temp = a; + a = b; + b = temp; + } + + int getParentIndex(int index) { + return (index - 1) / 2; + } + + int getLeftChildIndex(int index) { + return (2 * index) + 1; + } + + int getRightChildIndex(int index) { + return (2 * index) + 2; + } + + // Hilfsfunktion zum Wiederherstellen der Heap-Eigenschaft nach oben + void heapifyUp(int index) { + if (index == 0) + return; + + int parentIndex = getParentIndex(index); + if (heap[parentIndex] < heap[index]) { + swap(heap[parentIndex], heap[index]); + heapifyUp(parentIndex); + } + } + + // Hilfsfunktion zum Wiederherstellen der Heap-Eigenschaft nach unten + void heapifyDown(int index) { + int largest = index; + int leftChildIndex = getLeftChildIndex(index); + int rightChildIndex = getRightChildIndex(index); + + if (leftChildIndex < heap.size() && heap[leftChildIndex] > heap[largest]) + largest = leftChildIndex; + + if (rightChildIndex < heap.size() && heap[rightChildIndex] > heap[largest]) + largest = rightChildIndex; + + if (largest != index) { + swap(heap[index], heap[largest]); + heapifyDown(largest); + } + } + +public: + // Einfügen eines Elements in den Heap + void insert(int value) { + heap.push_back(value); + heapifyUp(heap.size() - 1); + } + + // Entfernen des Maximums aus dem Heap + int removeMax() { + if (heap.empty()) + throw std::out_of_range("Heap is empty!"); + + int max = heap[0]; + heap[0] = heap.back(); + heap.pop_back(); + heapifyDown(0); + + return max; + } + + // Zugriff auf das Maximum im Heap + int getMax() { + return heap[0]; + } + + // Prüfen, ob der Heap leer ist + bool isEmpty() { + return heap.empty(); + } +}; + +int main() { + MaxHeap heap; + + // Beispielverwendung des Heaps + heap.insert(10); + heap.insert(7); + heap.insert(15); + heap.insert(30); + heap.insert(20); + + std::cout << "Max: " << heap.getMax() << std::endl; + + heap.removeMax(); + + std::cout << "Max after removal: " << heap.getMax() << std::endl; + + return 0; +} \ No newline at end of file diff --git a/2023_Informatik_b/hello.cpp b/2023_Informatik_b/hello.cpp new file mode 100644 index 0000000..d559fea --- /dev/null +++ b/2023_Informatik_b/hello.cpp @@ -0,0 +1,13 @@ +/* Informatik B - Sommersemester 2022 +Vorlesung am 21.04.2022 +Katharina Klost + +Beispiele zur Ein-und Ausgabe +*/ +#include + +int main(){ + /* Der Text "Hello World!" wird auf der Konsole ausgegeben, gefolgt von einem + Zeilenumbruch*/ + std::cout << "Hello World!" << std::endl; +} diff --git a/2023_Informatik_b/hilfsfunktionen.cpp b/2023_Informatik_b/hilfsfunktionen.cpp new file mode 100644 index 0000000..d692c46 --- /dev/null +++ b/2023_Informatik_b/hilfsfunktionen.cpp @@ -0,0 +1,77 @@ +/* Informatik B - Sommersemester 2023 +Vorlesung am 12.05.2023 +Katharina Klost + +Hilfsfunktionen zum Sortieren, nur zusammen mit der sorting.cpp zu compilieren +*/ +#include +#include +#include "hilfsfunktionen.hpp" + + +namespace hf{ + + void gebe_aus(std::vector& vec, unsigned start, unsigned end){ + if(end>vec.size()){ + std::cout << vec.size() << " " << end << std::endl; + return; + } + std::cout << vec[start]; + for(unsigned k=start+1; k& elems, unsigned i, unsigned j){ + if (i>=elems.size() || j >= elems.size()){ + return; + } + int tmp = elems[i]; + elems[i] = elems[j]; + elems[j] = tmp; + } + + unsigned minimumIndex(std::vector& elems, unsigned start, unsigned end){ + unsigned min = start; + for(unsigned i = start; i copy(std::vector& elems, unsigned start, unsigned end){ + std::vector returnVec; + for(unsigned i= start; i sortiertes_array(unsigned size, bool aufsteigend) { + std::vector array(size); + for (unsigned i = 0; i < size; i++) + array[i] = aufsteigend * i + (!aufsteigend) * (size - i - 1); + return array; + } + + std::vector zufalls_array(unsigned size) { + std::vector array(size); + for (unsigned i = 0; i < size; i++) + array[i] = zufall(0, size); + return array; + } + +} \ No newline at end of file diff --git a/2023_Informatik_b/hilfsfunktionen.hpp b/2023_Informatik_b/hilfsfunktionen.hpp new file mode 100644 index 0000000..611d18b --- /dev/null +++ b/2023_Informatik_b/hilfsfunktionen.hpp @@ -0,0 +1,66 @@ +/* Informatik B - Sommersemester 2023 +Vorlesung am 12.05.2023 +Katharina Klost + +Headerdatei zu den Hilfsfunktionen zum Sortieren +*/ + +#include +// #include "telefonbuch.hpp" + +namespace hf{ +/* +Voraussetzung: 0 <= start <= end < vec.elems() +Ergebnis: Keins +Effekt: Gibt die Elemente des Vektors im Intervall [start,end) aus +*/ +void gebe_aus(std::vector& elems, unsigned start, unsigned end); + +/* +Voraussetzung: 0<=start<=end < vec.elems() +Ergebnis: Ein vector, mit alle Elemente im Intervall [start, end) +Effekt: Keiner +*/ +std::vector copy(std::vector& elems, unsigned start, unsigned end); + +/* +Voraussetzung: 0 <= i,j <= elems.size() +Ergebnis: Keins +Effekt: Tauscht die Einträge and Position i und j +*/ +void swap(std::vector& elems, unsigned i, unsigned j); + + + + +/* +Voraussetzung: Es gilt 0 <= start <= end < elems.size() +Effekt: Keiner +Ergebni: Index des kleinesten Elements zwischen start und end +*/ +unsigned minimumIndex(std::vector& elems, unsigned start, unsigned end); + + +/* +Voraussetzung: left < right +Ergebnis: Eine Zufallszahl zwischen left(inklusive) und right (exklusive) +Effekt: Keiner +*/ +int zufall(int left, int right); + +/* +Voraussetzung: Keine +Effekt: Keiner +Ergebnis: Ein sortierter vector ist geliefert. Wenn aufsteigend=true ist der vector aufsteigend sortiert, sonst absteigends +*/ +std::vector sortiertes_array(unsigned size, bool aufsteigend); + +/* +Voraussetzung: Keine +Effekt: Keiner +Ergebnis: Ein vector mit zufälligen Werten ist geliefert. Hierbei wird jede Zahl gleichverteilt + zufällig zwischen 0 und size gewählt. Doppelte Zahlen sind möglich. +*/ +std::vector zufalls_array(unsigned size); + +} diff --git a/2023_Informatik_b/histogram.cpp b/2023_Informatik_b/histogram.cpp new file mode 100644 index 0000000..883c3b4 --- /dev/null +++ b/2023_Informatik_b/histogram.cpp @@ -0,0 +1,70 @@ +/* +Arbeiten mit Dateien in C++: +- Datei öffnen +- Datei lesen +- Datei schließen +Quelle: https://cplusplus.com/reference/fstream/ + +histogram() ist eine Funktion, die ein Histogramm der Buchstaben in einem String erstellt. +- Vorraussetzungen: str ist ein String +- Ergebnis: hist ist ein Vektor, der die Häufigkeit der Buchstaben in str enthält +- Seiteneffekte: keine +*/ + +#include +#include +#include +#include + +std::vector histogram(std::string str); + +int main() { + + std::ifstream inputFile("moby.txt"); + + std::string content, line; + + while (std::getline(inputFile, line)) { + content += line; + } + + std::vector hist = histogram(content); + + for (unsigned i = 0; i < 26; i++) { + if (hist[i] > 0) { + std::cout << static_cast('a' + i) << ": " << hist[i] << ", "; + } + } + + for (unsigned i = 26; i < hist.size(); i++) { // Loop for uppercase letters + if (hist[i] > 0) { + std::cout << static_cast('A' + i - 26) << ": " << hist[i] << ", "; + } + } + + std::cout << std::endl; + + inputFile.close(); + + return 0; + +} + +std::vector histogram(std::string str) { + + std::vector hist(52, 0); + + for (unsigned i = 0; i < str.length(); i++) { + + if (str[i] >= 'a' && str[i] <= 'z') { + hist[str[i] - 'a']++; + } + + else if (str[i] >= 'A' && str[i] <= 'Z') { + hist[str[i] - 'A' + 26]++; + } + + } + + return hist; +} diff --git a/2023_Informatik_b/insertionsort.cpp b/2023_Informatik_b/insertionsort.cpp new file mode 100644 index 0000000..3aa3498 --- /dev/null +++ b/2023_Informatik_b/insertionsort.cpp @@ -0,0 +1,39 @@ +/* +g++ -std=c++14 -Wall -Wextra -Werror -pedantic ./w4/hilfsfunktionen.cpp ./w4/insertionsort.cpp -o ./bin/insertionsort + +Insertion Sort funktioniert, indem es durch das Array läuft und jedes Element nach links verschiebt, +bis es das erste Element findet, das kleiner ist. Dieser Prozess wird für jedes Element im Array wiederholt, +bis das gesamte Array sortiert ist. Im Hauptprogramm (main) wird der Insertion Sort Algorithmus auf ein Testarray angewendet +und das Array vor und nach der Sortierung ausgegeben. +*/ + +#include +#include "hilfsfunktionen.hpp" + +void insertionSort(std::vector& elems){ + // Der Schlüssel ist das Element, das wir gerade sortieren + int key=elems[0]; + unsigned shiftindex; + + // Beginne mit dem zweiten Element (Index 1) + for(unsigned i = 1; i0&&elems[shiftindex-1]>=key;shiftindex--){ + elems[shiftindex] = elems[shiftindex-1]; + } + + // Füge den Schlüssel an der richtigen Position ein + elems[shiftindex] = key; + } +} + + +int main(){ + std::vector test = {1,4,2,67,3,76,13,8,10,22,6,9,5,11,32,0}; + hf::gebe_aus(test, 0, test.size()); + insertionSort(test); + hf::gebe_aus(test, 0, test.size()); +} \ No newline at end of file diff --git a/2023_Informatik_b/io.cpp b/2023_Informatik_b/io.cpp new file mode 100644 index 0000000..9edccfa --- /dev/null +++ b/2023_Informatik_b/io.cpp @@ -0,0 +1,19 @@ +/* Informatik B - Sommersemester 2022 +Vorlesung am 21.04.2022 +Katharina Klost + +Beispiele zur Ein-und Ausgabe +*/ +#include + +int main(){ + float a; + //Ohne std::endl gibt es keinen Zeilenumbruch + std::cout << "Gebe eine Zahl ein: "; + // mit std::cin wird ein Wert von der Konsole gelesen und wenn möglich + // in die passende Variable geschrieben + std::cin >> a; + // Das Ergebnis von Ausdrücken kann auf der Konsole ausgegeben werden + std::cout << "a: " << a << std::endl; + std::cout << "a mal zwei: " << a*2 << std::endl; +} diff --git a/2023_Informatik_b/klassen.cpp b/2023_Informatik_b/klassen.cpp new file mode 100644 index 0000000..8fa4af3 --- /dev/null +++ b/2023_Informatik_b/klassen.cpp @@ -0,0 +1,162 @@ +#include +#include + +/* +EScooter +------------------------- +- Marke: std::string +- PS: int +- Akku: int +------------------------- ++ EScooter(m: std::string, p: int, a: int) ++ ~EScooter() ++ getModell(): std::string ++ getPS(): int ++ getAkku(): int ++ setPS(p: int): void ++ operator<(other: EScooter): bool +*/ +class EScooter +{ +private: + // Attribute + std::string Marke; + int PS; + int Akku; + +public: + /* + Voraussetzungen: Die Funktion kann mit einem String und zwei Integers aufgerufen werden. + Ergebnis: Es wird kein Ergebnis zurückgegeben. + Effekt: Ein neues EScooter-Objekt wird mit den angegebenen Marken-, PS- und Akkuwerten erstellt. + */ + EScooter(std::string m, int p, int a) : Marke(m), PS(p), Akku(a) {} + + /* + Voraussetzungen: Keine. Der Destruktor wird aufgerufen, wenn ein EScooter-Objekt gelöscht wird. + Ergebnis: Es wird kein Ergebnis zurückgegeben. + Effekt: Das EScooter-Objekt wird aus dem Speicher entfernt. + */ + ~EScooter() {} + + /* + Voraussetzungen: Diese Methoden können aufgerufen werden, um die entsprechenden Attribute eines EScooter-Objekts zu erhalten. + Ergebnis: Jede Methode gibt den entsprechenden Attributwert zurück. + Effekt: Kein weiterer Effekt. + */ + std::string getModell() + { + return Marke; + } + + int getPS() + { + return PS; + } + + int getAkku() + { + return Akku; + } + + /* + Voraussetzungen: Die Methode kann aufgerufen werden, um den PS-Wert eines EScooter-Objekts zu ändern. + Ergebnis: Es wird kein Ergebnis zurückgegeben. + Effekt: Der PS-Wert des EScooter-Objekts wird auf den übergebenen Wert gesetzt. + */ + void setPS(int p) + { + PS = p; + } + + /* + Voraussetzungen: Die Methode kann aufgerufen werden, um zwei EScooter-Objekte auf der Basis ihrer PS-Werte zu vergleichen. + Ergebnis: Die Methode gibt ein boolsches Ergebnis zurück, das angibt, ob das aktuelle EScooter-Objekt weniger PS hat als das andere. + Effekt: Kein weiterer Effekt. + */ + bool operator<(const EScooter &other) const + { + return PS < other.PS; + } +}; + +/* +Kochfeld +------------------------- +- Marke: std::string +- AnzahlBrenner: int +- istEingeschaltet: bool +------------------------- ++ Kochfeld(m: std::string, b: int) ++ ~Kochfeld() ++ getMarke(): std::strinsg ++ getAnzahlBrenner(): int ++ einschalten(): void ++ ausschalten(): void ++ istAn(): bool +*/ +class Kochfeld +{ +private: + std::string Marke; + int AnzahlBrenner; + bool istEingeschaltet; + +public: + // Konstruktor + Kochfeld(std::string m, int b) : Marke(m), AnzahlBrenner(b), istEingeschaltet(false) {} + + // Destruktor + ~Kochfeld() {} + + // Methoden + std::string getMarke() const + { + return Marke; + } + + int getAnzahlBrenner() const + { + return AnzahlBrenner; + } + + void einschalten() + { + istEingeschaltet = true; + } + + void ausschalten() + { + istEingeschaltet = false; + } + + bool istAn() const + { + return istEingeschaltet; + } +}; + +int main() +{ + // Test EScooter + EScooter meinScooter("voi", 250, 100); + std::cout << "Marke: " << meinScooter.getModell() << std::endl; + std::cout << "PS: " << meinScooter.getPS() << std::endl; + std::cout << "Akku: " << meinScooter.getAkku() << std::endl; + EScooter andererScooter("lime", 300, 120); + std::cout << "Ist mein Scooter schwächer als der andere? " << (meinScooter < andererScooter ? "Ja" : "Nein") << std::endl; + meinScooter.setPS(350); + std::cout << "Nach dem Tuning: " << std::endl; + std::cout << "PS: " << meinScooter.getPS() << std::endl; + std::cout << "Ist mein Scooter jetzt schwächer als der andere? " << (meinScooter < andererScooter ? "Ja" : "Nein") << std::endl; + + // Test Kochfeld + Kochfeld meinKochfeld("Bosch", 4); + std::cout << "Marke: " << meinKochfeld.getMarke() << std::endl; + std::cout << "Anzahl der Brenner: " << meinKochfeld.getAnzahlBrenner() << std::endl; + std::cout << "Ist das Kochfeld eingeschaltet? " << (meinKochfeld.istAn() ? "Ja" : "Nein") << std::endl; + meinKochfeld.einschalten(); + std::cout << "Ist das Kochfeld eingeschaltet? " << (meinKochfeld.istAn() ? "Ja" : "Nein") << std::endl; + meinKochfeld.ausschalten(); + std::cout << "Ist das Kochfeld eingeschaltet? " << (meinKochfeld.istAn() ? "Ja" : "Nein") << std::endl; +} \ No newline at end of file diff --git a/2023_Informatik_b/konto.cpp b/2023_Informatik_b/konto.cpp new file mode 100644 index 0000000..effcfa7 --- /dev/null +++ b/2023_Informatik_b/konto.cpp @@ -0,0 +1,64 @@ +#include +#include + +class Konto +{ +private: + unsigned pin; + int kontostand; + +public: + Konto(unsigned pin, int kontostand) : pin(pin), kontostand(kontostand) {} + + void abheben(unsigned pin, unsigned betrag) + { + if (this->pin == pin) + { + kontostand = kontostand - betrag; + } + else + { + std::cout << "Falsche Pin.\n"; + } + } + + void einzahlen(unsigned pin, unsigned betrag) + { + if (this->pin == pin) + { + std::cout << "Alter Kontostand: " << kontostand << std::endl; + kontostand = kontostand + betrag; + std::cout << "Neuer Kontostand: " << kontostand << std::endl; + } + else + { + std::cout << "Falsche Pin.\n"; + } + } + + void mehr_einzahlen(unsigned pin, std::vector betraege) + { + if (this->pin == pin) + { + for (unsigned i; i < betraege.size(); i++) + kontostand = kontostand + betraege[i]; + } + else + { + std::cout << "Falsche Pin.\n"; + } + } + + ~Konto() + { + std::cout << "Konto wurde gelöscht.\n"; + } +}; + +int main() +{ + int betrag; + std::cin >> betrag; + Konto meinKonto(1234, 6000); + meinKonto.einzahlen(1234, betrag); +} \ No newline at end of file diff --git a/2023_Informatik_b/kontrollstrukturen.cpp b/2023_Informatik_b/kontrollstrukturen.cpp new file mode 100644 index 0000000..ea34eed --- /dev/null +++ b/2023_Informatik_b/kontrollstrukturen.cpp @@ -0,0 +1,82 @@ +/* Informatik B - Sommersemester 2023 +Vorlesung am 26.04.2023 +Katharina Klost + +Beispiele zu Kontrollstrukturen +*/ + +#include + + + +int main(){ + + /* + Beispiel für eine komplexere if-then-else Abfrage. + */ + int num ; + std::cout << "Gebe eine Zahl für den if test ein: " ; + std::cin >> num; + if (num == 2) { + num = num*2; + } + else if (num > 1 && num <5) { + num= num*3; + } + else if (num >=10){ + num = num*4; + } + else{ + num = num*5; + } + std::cout << num << std::endl; + + /* + Beispiel für eine switch-case umgebeung + Die einzelnen case Abschnitte sind keine Blöcke, daher gibt es ohne + break einen fallthrough und es können keine Variablen deklariert werden. + + Bei modernen Compilern sollte es keine Unterschiede in der Performance + von semantisch gleichen if-Bedingungen und switch-case Umgebungen geben + */ + int num1; + std::cout << "Gebe eine Zahl für den switch-case test ein: "; + std::cin >> num1; + switch(num1){ + case 1: + std::cout << "num ist 1" << std::endl; //kein break -> fallthrough + case 2: + std::cout << "num ist 1 oder 2" << std::endl; + break; + case 3: + std::cout << "num ist 3" << std::endl; + break; + case 4: + std::cout << "num ist 4" << std::endl; + break; + default: + std::cout << "num ist nicht 1,2,3 oder 4" << std::endl; + } + +/* +Beispiel für eine for-schleife, in und (vgl. Folien) +Können auch mehrere Anweisungen mit , getrennt stehen. +*/ +int num_for = 3; +for (int counter=1; counter <=4; counter=counter+1, num_for ++) { + num_for= num_for*num_for; + std::cout << "num_for in iteration " << counter << ": "<< num_for << std::endl; +} +std::cout << "num_for nach Schleife: " << num_for << std::endl; + +/* +Beispiel für eine while-schleife +*/ + int num_while = 2; + int goal = 300; + while (num_while < goal) { + num_while = num_while * num_while; + std::cout << "num_while after *: " << num_while << std::endl; + } + std::cout << num_while << std::endl; +} diff --git a/2023_Informatik_b/maschine.cpp b/2023_Informatik_b/maschine.cpp new file mode 100644 index 0000000..06ae5a0 --- /dev/null +++ b/2023_Informatik_b/maschine.cpp @@ -0,0 +1,63 @@ +#include + +class Maschine +{ +private: + bool status; + bool kaputt; + +public: + Maschine(bool status, bool kaputt) : status(status), kaputt(kaputt) {} + virtual ~Maschine() {} + + void schalter() + { + status = !status; + } + virtual void schrotten() + { + kaputt = true; + } + bool ist_an() + { + return status && !kaputt; + } +}; + +class Waschmaschine : public Maschine +{ +private: +public: + Waschmaschine(bool status, bool kaputt) : Maschine(status, kaputt) {} + ~Waschmaschine() {} + void waschen() + { + if (ist_an()) + { + std::cout << "Die Waschmaschine wäscht die Wäsche ...\n"; + } + else + { + std::cout << "Die Waschmaschine ist aus oder kaputt ...\n"; + } + } +}; + +class Spuellmaschine : public Maschine +{ +private: +public: + Spuellmaschine(bool status, bool kaputt) : Maschine(status, kaputt) {} + ~Spuellmaschine() {} + void spuelen() + { + if (ist_an()) + { + std::cout << "Die Spüllmaschine spüllt ...\n"; + } + else + { + std::cout << "Die Spüllmaschine ist aus oder kaputt ...\n"; + } + } +}; diff --git a/2023_Informatik_b/menu.cpp b/2023_Informatik_b/menu.cpp new file mode 100644 index 0000000..0793dbe --- /dev/null +++ b/2023_Informatik_b/menu.cpp @@ -0,0 +1,91 @@ +#include +#include +#include + +// Enum für die verschiedenen Menüpunkte +enum MenuType { + Vorspeise, + Hauptgang, + Dessert +}; + +// Struct für die Details eines Menüpunkts +struct MenuItem { + MenuType type; + std::string name; + std::string description; + double price; +}; + +void showMenu(const std::vector& menu) { + for (size_t i = 0; i < menu.size(); ++i) { + std::string type; + switch (menu[i].type) { + case Vorspeise: + type = "Vorspeise"; + break; + case Hauptgang: + type = "Hauptgang"; + break; + case Dessert: + type = "Dessert"; + break; + } + std::cout << type << ": " << menu[i].name << " - " << menu[i].description << " (€" << menu[i].price << ")\n"; + } +} + +MenuItem searchMenuItem(const std::vector& menu, const std::string& name) { + for (size_t i = 0; i < menu.size(); ++i) { + if (menu[i].name == name) { + return menu[i]; + } + } + return MenuItem{static_cast(-1), "", "", -1.0}; +} + +int main() { + // Erstellen des Restaurantmenüs + std::vector menu = { + {Vorspeise, "Bruschetta", "Geröstetes Brot mit Tomaten, Knoblauch und Basilikum", 5.0}, + {Hauptgang, "Spaghetti Bolognese", "Spaghetti mit würziger Hackfleisch-Tomatensauce", 10.0}, + {Dessert, "Tiramisu", "Italienisches Dessert aus Löffelbiskuit, Mascarpone und Kaffee", 6.0} + }; + + std::cout << "Willkommen im Restaurant!\n"; + std::cout << "Möchten Sie das Menü anzeigen oder nach einem bestimmten Menüpunkt suchen?\n"; + std::cout << "1. Menü anzeigen\n"; + std::cout << "2. Nach Menüpunkt suchen\n"; + std::cout << "3. Beenden\n"; + + int option; + std::cin >> option; + + while (option != 3) { + if (option == 1) { + showMenu(menu); + } else if (option == 2) { + std::string name; + std::cout << "Geben Sie den Namen des Menüpunkts ein, nach dem Sie suchen möchten: "; + std::cin.ignore(); + std::getline(std::cin, name); + MenuItem item = searchMenuItem(menu, name); + if (item.price != -1.0) { + std::cout << item.name << " - " << item.description << " (€" << item.price << ")\n"; + } else { + std::cout << "Menüpunkt nicht gefunden.\n"; + } + } else { + std::cout << "Ungültige Option.\n"; + } + + std::cout << "\nMöchten Sie das Menü anzeigen oder nach einem bestimmten Menüpunkt suchen?\n"; + std::cout << "1. Menü anzeigen\n"; + std::cout << "2. Nach Menüpunkt suchen\n"; + std::cout << "3. Beenden\n"; + std::cin >> option; + } + + std::cout << "Vielen Dank für Ihren Besuch! Auf Wiedersehen!\n"; + return 0; +} \ No newline at end of file diff --git a/2023_Informatik_b/mergesort.cpp b/2023_Informatik_b/mergesort.cpp new file mode 100644 index 0000000..32a562d --- /dev/null +++ b/2023_Informatik_b/mergesort.cpp @@ -0,0 +1,58 @@ +/* +g++ -std=c++14 -Wall -Wextra -Werror -pedantic ./w4/hilfsfunktionen.cpp ./w4/mergesort.cpp -o ./bin/mergesort + + +Dieser Algorithmus verwendet den Divide-and-Conquer-Ansatz, um das Array zu sortieren. Zuerst wird das Array in zwei Hälften geteilt. +Diese Hälften werden dann rekursiv sortiert (mit mergeSortHelp). Danach werden die beiden sortierten Hälften mit der merge Funktion +zusammengeführt. Dieser Prozess wird fortgesetzt, bis das gesamte Array sortiert ist. Im Hauptprogramm (main) wird der Merge Sort +Algorithmus auf ein Testarray angewendet und das Array vor und nach der Sortierung ausgegeben. +*/ + +#include +#include "hilfsfunktionen.hpp" + +void merge(std::vector& elems, unsigned begin, unsigned mid, unsigned end){ + // Kopiere die erste und zweite Hälfte des zu sortierenden Bereichs in neue Vektoren + std::vector firstHalf = hf::copy(elems, begin, mid); + std::vector secondHalf = hf::copy(elems, mid, end); + + // Initialisiere Zähler für die beiden Hälften + unsigned i = 0; + unsigned j = 0; + + // Iteriere durch den zu sortierenden Bereich + while(begin + i + j < end){ + // Wenn alle Elemente aus der zweiten Hälfte kopiert wurden oder das aktuelle Element der ersten Hälfte kleiner ist als das der zweiten Hälfte + if ( j >= secondHalf.size() || ((i& elems, unsigned start, unsigned end){ + if(start==end||start==end-1){ + return; + } + unsigned mid = (start+end)/2; + mergeSortHelp(elems, start, mid); + mergeSortHelp(elems, mid, end); + merge(elems, start, mid, end); +} + +void mergeSort(std::vector& elems){ + mergeSortHelp(elems, 0, elems.size()); +} + +int main(){ + std::vector test = {1,4,2,67,3,76,13,8,10,22,6,9,5,11,32,0}; + hf::gebe_aus(test, 0, test.size()); + mergeSort(test); + hf::gebe_aus(test, 0, test.size()); +} diff --git a/2023_Informatik_b/merkregeln.cpp b/2023_Informatik_b/merkregeln.cpp new file mode 100644 index 0000000..6edcb45 --- /dev/null +++ b/2023_Informatik_b/merkregeln.cpp @@ -0,0 +1,102 @@ +/* +(a) Attribute und Hilfsmethoden sollen als private deklariert sein. +Dies gewährleistet die Datenkapselung und Datenintegrität, indem sichergestellt wird, dass interne Zustände und Hilfsmethoden nicht direkt von außerhalb der Klasse modifiziert werden können. +*/ + +class BeispielKlassePriPub +{ +private: + int attribut; // Privates Attribut + + void hilfsMethode() + { // Private Hilfsmethode + attribut *= 2; + } + +public: + BeispielKlassePriPub() : attribut(5) {} + + void offentlicheMethode() + { + hilfsMethode(); + } +}; + +/* +(b) Methoden, die public sind, sowie die Konstruktoren als auch der Destruktor sollen spezifiziert sein. (Hier müssen Sie keine Code-Beispiele angeben.) +Dies bietet eine schriftliche Schnittstelle für andere um die Klasse richtig benutzen zu können. +*/ + +/* +(c) Das Signalwort const soll immer dort benutzt werden, wo es sinnvoll ist. +Durch Verwendung von const können wir sicherstellen, dass eine Methode den internen Zustand des Objekts nicht ändert. Dies kann besonders hilfreich sein, wenn wir das Objekt in einer Situation verwenden möchten, in der es unverändert bleiben muss. +*/ + +class BeispielKlasseConst +{ +private: + int attribut; + +public: + BeispielKlasseConst(int wert) : attribut(wert) {} + + // Eine const Methode, die das Attribut nicht ändern kann + int getAttribut() const + { + return attribut; + } +}; + +/* +(d) Jede Klasse, die mit new eigenen Speicher alloziert, soll einen Destruktor, einen Copy-Konstruktor und einen Copy-Assignment-Operator implementieren. +Dies sind die großen vier in C++. Wenn eine dieser Operationen benötigt wird, werden wahrscheinlich alle benötigt werden. Sie helfen dabei, Speicherlecks zu verhindern und sicherzustellen, dass das Objekt korrekt kopiert wird. +*/ + +class BeispielKlasse3 +{ +private: + int *attribut; + +public: + // Konstruktor + BeispielKlasse3(int wert) : attribut(new int(wert)) {} + + // Destruktor + ~BeispielKlasse3() + { + delete attribut; + } + + // Kopierkonstruktor + BeispielKlasse3(const BeispielKlasse3 &andere) : attribut(new int(*(andere.attribut))) {} + + // Kopierzuweisungsoperator + BeispielKlasse3 &operator=(const BeispielKlasse3 &andere) + { + if (this != &andere) + { + delete attribut; + attribut = new int(*(andere.attribut)); + } + return *this; + } +}; + +/* +(e) Benutze Call-by-Reference in Verbindung mit const statt Call-by-Value, wenn das übergebene Objekt nicht verändert werden soll. +Dies ist nützlich, um teure Kopien von großen Objekten zu vermeiden und gleichzeitig sicherzustellen, dass das ursprüngliche Objekt unverändert bleibt. +*/ + +class AndereKlasse +{ + // Definition für AndereKlasse +}; + +class BeispielKlasse4 +{ +public: + void irgendeineMethode(const AndereKlasse &objekt) const + { + // kann objekt hier verwenden, aber es nicht ändern + } +}; diff --git a/2023_Informatik_b/min.cpp b/2023_Informatik_b/min.cpp new file mode 100644 index 0000000..f127523 --- /dev/null +++ b/2023_Informatik_b/min.cpp @@ -0,0 +1,22 @@ +//g++ -std=c++14 -Wall -Wextra -Werror -pedantic ./w5/min.cpp -o ./bin/min && ./bin/min + + +#include +#include + +int min(const std::vector& vec); + +int main() { + std::vector testVec = {10, 20, 2, 0, 30}; + std::cout << "The minimum value in the vector is: " << min(testVec) << std::endl; +} + +int min(const std::vector& vec) { + int minVal = vec[0]; + for (unsigned i = 1; i < vec.size(); ++i) { + if (vec[i] < minVal) { + minVal = vec[i]; + } + } + return minVal; +} \ No newline at end of file diff --git a/2023_Informatik_b/pairs.cpp b/2023_Informatik_b/pairs.cpp new file mode 100644 index 0000000..bff9c58 --- /dev/null +++ b/2023_Informatik_b/pairs.cpp @@ -0,0 +1,19 @@ +/* Informatik B - Sommersemester 2023 +Vorlesung am 28.04.2023 +Katharina Klost + +Beispiele zu pairs +*/ + +#include + +int main(){ + std::pair mein_paar = {"Hallo", 1234}; + + std::cout << "Erster Eintrag vom mein_paar: " << mein_paar.first << std::endl; + std::cout << "Zweiter Eintrag vom mein_paar: " << mein_paar.second << std::endl; + + mein_paar.first = "Test"; + + std::cout << "Neuer erster Eintrag: " << mein_paar.first << std::endl; +} diff --git a/2023_Informatik_b/primitive_arrays.cpp b/2023_Informatik_b/primitive_arrays.cpp new file mode 100644 index 0000000..651cd16 --- /dev/null +++ b/2023_Informatik_b/primitive_arrays.cpp @@ -0,0 +1,46 @@ +// g++ -std=c++14 -Wall -Wextra -Werror -pedantic ./w7/primitive_arrays.cpp -o ./bin/primitive_arrays && ./bin/primitive_arrays + +#include + +/* +Voraussetzungen: +Die Funktion sollte nur aufgerufen werden, wenn eine Eingabe vom Benutzer erwartet wird. +Es wird vorausgesetzt, dass der Benutzer ausschließlich positive Ganzzahlen eingibt. + +Ergebnis: +Die Funktion gibt die Summe aller vom Benutzer eingegebenen Zahlen als Integer zurück. + +Effekt: +Die Funktion reserviert und gibt dynamischen Speicher frei. +*/ + +int summeZahlen() +{ + int k; + std::cout << "Geben Sie k an: "; + std::cin >> k; + + int *arr = new int[k]; + + for (int i = 0; i < k; ++i) + { + std::cout << "Geben Sie eine Zahl ein: "; + std::cin >> arr[i]; + } + + int summe = 0; + for (int i = 0; i < k; ++i) + { + summe += arr[i]; + } + + delete[] arr; + + return summe; +} + +int main() +{ + int summe = summeZahlen(); + std::cout << "Die Summe ist: " << summe << std::endl; +} diff --git a/2023_Informatik_b/queue_list.cpp b/2023_Informatik_b/queue_list.cpp new file mode 100644 index 0000000..6eb2cf4 --- /dev/null +++ b/2023_Informatik_b/queue_list.cpp @@ -0,0 +1,134 @@ +#include + +// Definiere eine Vorlage für die Klasse QueueList. +// Diese Klasse implementiert eine Warteschlange mit einer verketteten Liste. +template +class QueueList +{ +private: + // Definition eines Knotens, der einen Wert und einen Zeiger auf den nächsten Knoten hat. + struct Node + { + E value; + Node *next; + }; + + // Zeiger auf den Anfang und das Ende der Warteschlange und eine Zählvariable für die Größe. + Node *head; + Node *tail; + int count; + +public: + // Konstruktor initialisiert Zeiger und Zähler mit Nullwerten. + QueueList() : head(nullptr), tail(nullptr), count(0) {} + + // Destruktor löscht alle Elemente in der Warteschlange. + // Voraussetzung: keine + // Effekt: Alle Elemente in der Warteschlange werden gelöscht + // Ergebnis: Keines + ~QueueList() + { + while (!is_empty()) + { + dequeue(); + } + } + + // Überprüft, ob die Warteschlange leer ist. + // Voraussetzung: keine + // Effekt: Keiner + // Ergebnis: Wenn die Warteschlange leer ist, ist 'true' geliefert, sonst ist 'false' geliefert + bool is_empty() const + { + return count == 0; + } + + // Gibt die Größe der Warteschlange zurück. + // Voraussetzung: keine + // Effekt: Keiner + // Ergebnis: Die Anzahl der Elemente in der Warteschlange wird zurückgegeben + unsigned size() const + { + return count; + } + + // Gibt das erste Element der Warteschlange zurück. + // Voraussetzung: Die Warteschlange ist nicht leer + // Effekt: Keiner + // Ergebnis: Das vorderste Element wird zurückgegeben + E front() const + { + if (is_empty()) + { + throw std::runtime_error("Queue is empty"); + } + return this->head->value; + } + + // Fügt ein Element am Ende der Warteschlange ein. + // Voraussetzung: Keine + // Effekt: Das übergebene Element wird hinten in die Warteschlange eingefügt + // Ergebnis: Keines + void enqueue(E x) + { + Node *newNode = new Node(); + newNode->value = x; + newNode->next = nullptr; + + if (tail != nullptr) + { + tail->next = newNode; + } + + tail = newNode; + + if (is_empty()) + { + head = newNode; + } + + count++; + } + + // Entfernt das erste Element der Warteschlange und gibt seinen Wert zurück. + // Voraussetzung: Die Warteschlange ist nicht leer + // Effekt: Das vorderste Element wird aus der Warteschlange entfernt + // Ergebnis: Das vorderste Element wird zurückgegeben + E dequeue() + { + if (is_empty()) + { + throw std::runtime_error("Queue is empty"); + } + + Node *tempNode = head; + E value = head->value; + + head = head->next; + + if (head == nullptr) + { + tail = nullptr; + } + + delete tempNode; + count--; + + return value; + } +}; + +int main() +{ + // Erstellt eine Warteschlange und fügt die Werte 3, 5 und 2 hinzu. Dann wird das vorderste Element angezeigt und zwei Elemente werden entfernt. + // Überprüft schließlich, ob die Warteschlange leer ist. + QueueList q; + q.enqueue(1); + q.enqueue(2); + q.enqueue(3); + std::cout << q.front() << std::endl; // Erwartetes Ergebnis: 1 + std::cout << q.dequeue() << std::endl; // Erwartetes Ergebnis: 1 + std::cout << q.dequeue() << std::endl; // Erwartetes Ergebnis: 2 + std::cout << q.is_empty() << std::endl; // Erwartetes Ergebnis: 0 + std::cout << std::endl; +} diff --git a/2023_Informatik_b/rekursion_iteration.cpp b/2023_Informatik_b/rekursion_iteration.cpp new file mode 100644 index 0000000..682f55f --- /dev/null +++ b/2023_Informatik_b/rekursion_iteration.cpp @@ -0,0 +1,45 @@ +/* Informatik B - Sommersemester 2023 +Vorlesung am 03.05.2023 +Katharina Klost + +Beispiele zu rekursion und iteration +*/ +#include + +/* +Voraussetzung: keine +Ergebnis: Die Fakultät von n ist geliefert +Effekt: keiner +Rekursive Implementierung +*/ +unsigned fak_rek(unsigned n); + + +/* +Voraussetzung: keine +Ergebnis: Die Fakultät von n ist geliefert +Effekt: keiner +Iterative Implementierung +*/ +unsigned fak_iter(unsigned n); + +//Da hier direkte rekursion verwendet wird, gibt es keine Optimierung. +// Bei Endrekursion und Verwendung des -O3 flags wird die Endrekursion optimiert +unsigned fak_rek(unsigned n){ + if (n==0){ + return 1; + } + return(fak_rek(n-1)*n); +} + +unsigned fak_iter(unsigned n){ + unsigned res = 1; + for (unsigned i = 1; i<=n; i++){ + res*=i; + } + return res; +} + +int main(){ + +} diff --git a/2023_Informatik_b/replace.cpp b/2023_Informatik_b/replace.cpp new file mode 100644 index 0000000..c116ca3 --- /dev/null +++ b/2023_Informatik_b/replace.cpp @@ -0,0 +1,43 @@ +#include +#include + +/* +- Voraussetzungen: str ist ein String, charToReplace und replacementChar sind Zeichen +- Ergebnis: str ist ein String, in dem alle Vorkommen von charToReplace durch replacementChar ersetzt wurden +- Seiteneffekte: keine + +Der Rückgabetyp ist string, weil wir einen neuen String zurückgeben wollen, in dem alle Vorkommen von charToReplace durch replacementChar ersetzt wurden. +Die Parameter sind char, weil wir nur ein Zeichen ersetzen wollen. + +*/ +std::string repl(std::string str, char charToReplace, char replacementChar); + +int main() { + + std::cout << "Bitte gebe einen String ein bei dem du die Zeichen ersetzen willst: "; + std::string s; + std::getline(std::cin, s); + + std::cout << "Bitte gebe das Zeichen ein, welches zu ersetzen möchtest: "; + char a; + std::cin >> a; + + std::cout << "Bitte gebe das Zeichen ein, durch welches du ersetzen möchtest: "; + char b; + std::cin >> b; + + std::cout << "Dein neuer String ist: " << repl(s, a, b) << std::endl; + +} + +std::string repl(std::string str, char charToReplace, char replacementChar) { + + for (unsigned i = 0; i < str.length(); i++) { + if (str[i] == charToReplace) { + str[i] = replacementChar; + } + } + + return str; + +} \ No newline at end of file diff --git a/2023_Informatik_b/reverseSortVector.cpp b/2023_Informatik_b/reverseSortVector.cpp new file mode 100644 index 0000000..f967fdc --- /dev/null +++ b/2023_Informatik_b/reverseSortVector.cpp @@ -0,0 +1,35 @@ +#include +#include + +std::vector reverseSortVector(std::vector vec); + +int main() { + + int input = -1; + std::vector vec; + std::vector vecnew; + + std::cout << "Geben Sie eine Zahlenfolge ein, mit 0 beenden Sie die Eingabe: " << std::endl; + while (input != 0) { + std::cin >> input; + if (input != 0) { + vec.push_back(input); + } + } + + vecnew = reverseSortVector(vec); + + std::cout << "Die Zahlenfolge in umgekehrter Reihenfolge: " << std::endl; + for (unsigned i = 0; i < vecnew.size(); i++) { + std::cout << vecnew[i] << std::endl; + } + +} + +std::vector reverseSortVector(std::vector vec) { + std::vector vecnew; + for (unsigned i = vec.size() - 1; i >= 0; i--) { + vecnew.push_back(vec[i]); + } + return vecnew; +} \ No newline at end of file diff --git a/2023_Informatik_b/rucksack2.cpp b/2023_Informatik_b/rucksack2.cpp new file mode 100755 index 0000000..47e82ab --- /dev/null +++ b/2023_Informatik_b/rucksack2.cpp @@ -0,0 +1,81 @@ +// g++ -std=c++14 -Wall -Wextra -Werror -pedantic ./w4/rucksack2.cpp -o +// ./bin/rucksack2 + +#include +#include + +struct Gegenstand { + int gewicht; + int wert; + + Gegenstand(int g, int w) : gewicht(g), wert(w) {} +}; + +int rucksackWert(const std::vector &gegenstaende, int kapazitaet, + int index) { + if (index < 0 || kapazitaet == 0) { + return 0; + } + + if (gegenstaende[index].gewicht > kapazitaet) { + return rucksackWert(gegenstaende, kapazitaet, index - 1); + } else { + int wert1 = rucksackWert(gegenstaende, kapazitaet, index - 1); + int wert2 = + gegenstaende[index].wert + + rucksackWert(gegenstaende, kapazitaet - gegenstaende[index].gewicht, + index - 1); + return (wert1 > wert2) ? wert1 : wert2; + } +} + +std::vector +rucksackGegenstaende(const std::vector &gegenstaende, + int kapazitaet, int index) { + if (index < 0 || kapazitaet == 0) { + return std::vector(); + } + + if (gegenstaende[index].gewicht > kapazitaet) { + return rucksackGegenstaende(gegenstaende, kapazitaet, index - 1); + } else { + int wert1 = rucksackWert(gegenstaende, kapazitaet, index - 1); + int wert2 = + gegenstaende[index].wert + + rucksackWert(gegenstaende, kapazitaet - gegenstaende[index].gewicht, + index - 1); + + if (wert1 > wert2) { + return rucksackGegenstaende(gegenstaende, kapazitaet, index - 1); + } else { + std::vector ausgewaehlteGegenstaende = rucksackGegenstaende( + gegenstaende, kapazitaet - gegenstaende[index].gewicht, index - 1); + ausgewaehlteGegenstaende.push_back(gegenstaende[index]); + return ausgewaehlteGegenstaende; + } + } +} + +int main() { + std::vector gegenstaende; + gegenstaende.push_back(Gegenstand(2, 10)); + gegenstaende.push_back(Gegenstand(3, 15)); + gegenstaende.push_back(Gegenstand(5, 20)); + gegenstaende.push_back(Gegenstand(7, 25)); + + int kapazitaet = 10; + + int optimalerWert = + rucksackWert(gegenstaende, kapazitaet, gegenstaende.size() - 1); + std::cout << "Optimaler Wert: " << optimalerWert << std::endl; + + std::vector optimaleGegenstaende = + rucksackGegenstaende(gegenstaende, kapazitaet, gegenstaende.size() - 1); + std::cout << "Optimale Gegenstände: "; + for (const auto &gegenstand : optimaleGegenstaende) { + std::cout << "(" << gegenstand.gewicht << ", " << gegenstand.wert << ") "; + } + std::cout << std::endl; + + return 0; +} diff --git a/2023_Informatik_b/selectionsort.cpp b/2023_Informatik_b/selectionsort.cpp new file mode 100644 index 0000000..ded2243 --- /dev/null +++ b/2023_Informatik_b/selectionsort.cpp @@ -0,0 +1,25 @@ +/* +g++ -std=c++14 -Wall -Wextra -Werror -pedantic ./w4/hilfsfunktionen.cpp ./w4/selectionsort.cpp -o ./bin/selectionsort + +Dieser Algorithmus durchläuft das Array und findet das kleinste Element, dann tauscht es dieses Element mit dem ersten Element des Arrays. +Danach durchläuft es den restlichen Teil des Arrays, findet das kleinste Element und tauscht es mit dem zweiten Element des Arrays. +Dieser Prozess wird so lange wiederholt, bis das gesamte Array sortiert ist. Im Hauptprogramm (main) wird der Selection Sort Algorithmus auf +ein Testarray angewendet und das Array vor und nach der Sortierung ausgegeben. + +*/ + +#include +#include "hilfsfunktionen.hpp" + +void selectionSort(std::vector& elems){ + for(unsigned i = 0; i < elems.size();i++){ + hf::swap(elems, i, hf::minimumIndex(elems, i, elems.size())); + } +} + +int main(){ + std::vector test = {1,4,2,67,3,76,13,8,10,22,6,9,5,11,32,0}; + hf::gebe_aus(test, 0, test.size()); + selectionSort(test); + hf::gebe_aus(test, 0, test.size()); +} diff --git a/2023_Informatik_b/strings.cpp b/2023_Informatik_b/strings.cpp new file mode 100644 index 0000000..27ad3ef --- /dev/null +++ b/2023_Informatik_b/strings.cpp @@ -0,0 +1,23 @@ +/* Informatik B - Sommersemester 2023 +Vorlesung am 28.04.2023 +Katharina Klost + +Beispiele zu Strings +*/ + +#include +#include + +int main(){ + std::string ein_string = "Hallo"; + char stelle2 = ein_string[2]; + std::cout << "An index 2 steht: " << stelle2 << std::endl; + ein_string[2]= 'x'; + std::cout << "Stelle 2 verändert: " << ein_string << std::endl; + ein_string = ein_string + " Welt!"; + std::cout << ein_string << std::endl; + std::cout << ein_string + 'c' << std::endl; + + std::cout << "Der String \"" << ein_string << "\" hat " << ein_string.length() << " Zeichen" << std::endl; + +} diff --git a/2023_Informatik_b/structs.cpp b/2023_Informatik_b/structs.cpp new file mode 100644 index 0000000..7e434d9 --- /dev/null +++ b/2023_Informatik_b/structs.cpp @@ -0,0 +1,49 @@ +/* Informatik B - Sommersemester 2023 +Vorlesung am 28.04.2023 +Katharina Klost + +Beispiele zu structs +*/ + +#include +#include + + +struct studi{ + std::string name; + int matrikelnummer; + bool bachelor; + std::string studienfach; +}; + +struct studi2{ + std::string name; + int matrikelnummer; + bool bachelor; + std::string studienfach; +}; + +int main(){ + studi luca = {"Luca Muster", 42, true, "Informatik"}; + studi mo = {"Mo", 112, true, "Bioinformatik"}; + studi alex = {"Alex Müller", 4711, false, "Informatik"}; + + //mit dem . kann auf ein Feld zugegriffen werden. + std::cout << mo.name << std::endl; + mo.bachelor = false; + std::cout << mo.bachelor << std::endl; + + // wegen der Wertsemantik werden die Einträge beim zuweisen kopiert + studi luca2 = luca; + + luca2.name = "Luca Mustermann"; + std::cout << luca2.name << std::endl; + std::cout << luca.name << std::endl; + studi2 luca3; + //nur structs vom gleichen Typ können einander zugewiesen werden + //luca3 = luca; + + //structs können auch in vectoren gespeichert werden + std::vector tutorium ={luca,mo}; + tutorium.push_back(alex); +} diff --git a/2023_Informatik_b/templates.cpp b/2023_Informatik_b/templates.cpp new file mode 100644 index 0000000..6f5b141 --- /dev/null +++ b/2023_Informatik_b/templates.cpp @@ -0,0 +1,158 @@ +#include +#include +#include + +template +class schluesselWertPaar +{ +private: + SchluesselTyp schluessel; + WertTyp wert; + +public: + schluesselWertPaar() {} + // Konstruktor + schluesselWertPaar(SchluesselTyp schluessel, WertTyp wert) : schluessel(schluessel), wert(wert) {} + + // Getter für Schlüssel und Wert + SchluesselTyp getSchluessel() const + { + return schluessel; + } + + WertTyp getWert() const + { + return wert; + } + + // Setter für Schlüssel und Wert + void setSchluessel(SchluesselTyp neuerSchluessel) + { + schluessel = neuerSchluessel; + } + + void setWert(WertTyp neuerWert) + { + wert = neuerWert; + } + + // Überladen des < Operators + bool operator<(const schluesselWertPaar &paar) const + { + return schluessel < paar.getSchluessel(); + } +}; + +template +void merge(std::vector> &vec, int start, int mid, int end) +{ + int i, j, k; + int n1 = mid - start + 1; + int n2 = end - mid; + + std::vector> left(n1), right(n2); + + for (i = 0; i < n1; i++) + left[i] = vec[start + i]; + for (j = 0; j < n2; j++) + right[j] = vec[mid + 1 + j]; + + i = 0; + j = 0; + k = start; + while (i < n1 && j < n2) + { + if (left[i] < right[j]) + { + vec[k] = left[i]; + i++; + } + else + { + vec[k] = right[j]; + j++; + } + k++; + } + + while (i < n1) + { + vec[k] = left[i]; + i++; + k++; + } + + while (j < n2) + { + vec[k] = right[j]; + j++; + k++; + } +} + +template +void mergeSort(std::vector> &vec, int start, int end) +{ + if (start < end) + { + int mid = start + (end - start) / 2; + + mergeSort(vec, start, mid); + mergeSort(vec, mid + 1, end); + + merge(vec, start, mid, end); + } +} + +template +int binarySearch(std::vector> &vec, int start, int end, SchluesselTyp key) +{ + if (end >= start) + { + int mid = start + (end - start) / 2; + + if (vec[mid].getSchluessel() == key) + return mid; + + if (vec[mid].getSchluessel() > key) + return binarySearch(vec, start, mid - 1, key); + + return binarySearch(vec, mid + 1, end, key); + } + + return -1; +} + +int main() +{ + std::vector> vec; + vec.push_back(schluesselWertPaar(3, "drei")); + vec.push_back(schluesselWertPaar(1, "eins")); + vec.push_back(schluesselWertPaar(2, "zwei")); + std::cout << "Vor dem sortieren:\n"; + + for (const auto &paar : vec) + { + std::cout << paar.getSchluessel() << " " << paar.getWert() << std::endl; + } + + mergeSort(vec, 0, vec.size() - 1); + + std::cout << "Nach dem sortieren:\n"; + + for (const auto &paar : vec) + { + std::cout << paar.getSchluessel() << " " << paar.getWert() << std::endl; + } + + int index = binarySearch(vec, 0, vec.size() - 1, 3); + + if (index != -1) + { + std::cout << "Gefunden an Position: " << index + 1 << std::endl; + } + else + { + std::cout << "Nicht gefunden" << std::endl; + } +} \ No newline at end of file diff --git a/2023_Informatik_b/turn_min.cpp b/2023_Informatik_b/turn_min.cpp new file mode 100644 index 0000000..0747d83 --- /dev/null +++ b/2023_Informatik_b/turn_min.cpp @@ -0,0 +1,39 @@ +/* +clear && g++ -std=c++14 -Wall -Wextra -Werror -pedantic ./w5/turn_min.cpp -o ./bin/turn_min && ./bin/turn_min + +Bei jedem Durchlauf halbieren wir die Größe der Eingabe (also n/2), +und wir müssen alle Elemente betrachten, um das Minimum zu finden (also O(n)) +Daraus folgt die Rekursionsgleichung: T(n) = T(n/2) + O(n) + +Da wir log(n) Runden benötigen und in jeder Runde O(n) Operationen durchführen +beträgt die Gesamtlaufzeit des Algorithmus O(n log n) +*/ + +#include +#include + +std::pair TurnMin(std::vector& vec); + +int main() { + std::vector vec = {7, 3, 2, 5, 10, -5, 4, 6,2,2,3,4,4,5,6,76,7,78}; + auto ergebnis = TurnMin(vec); + std::cout << "Die Gewinnerzahl, nach " << ergebnis.first << " Runden, ist: " << ergebnis.second << std::endl; +} + +std::pair TurnMin(std::vector& vec) { + int runde = 0; + while (vec.size() > 1) { + std::vector gewinner; + for (unsigned i = 0; i < vec.size(); i += 2) { + if (vec[i] < vec[i + 1]) { + gewinner.push_back(vec[i]); + } + else { + gewinner.push_back(vec[i + 1]); + } + } + vec = gewinner; + runde++; + } + return {runde, vec[0]}; +} \ No newline at end of file diff --git a/2023_Informatik_b/tut.cpp b/2023_Informatik_b/tut.cpp new file mode 100644 index 0000000..85b684a --- /dev/null +++ b/2023_Informatik_b/tut.cpp @@ -0,0 +1,59 @@ +#include +#include + +int main() { + + // Aufgabe 1a + + int x; + std::cin >> x; + int y = 1; + + for (int i = x; i > 0; i--) { + y = y * i; + } + + std::cout << y << std::endl; + + // Aufgabe 1b + + int z = 1; + int l = x; + while (l > 1) { + z = z * l; + l--; + } + + std::cout << z << std::endl; + + // Aufgabe 2 + + // 1 Load 7 + // 2 Write 6 + // 3 Add 7 + // 4 Jump 2 + // 5 Return + // 6 0 + // 7 3 + + // Aufgabe 3 + + std::string artist; + std::cout << "Wer ist dein Lieblingsartist?" << std::endl; + std::cin >> artist; + std::cout << "Dein Lieblingsartist ist " << artist << std::endl; + + std::string album; + std::cout << "Was ist dein Lieblingsalbum?" << std::endl; + std::cin >> album; + std::cout << "Dein Lieblingsalbum ist " << album << std::endl; + + int zahl; + std::cout << "Was ist deine Lieblingszahl?" << std::endl; + std::cin >> zahl; + int quad = zahl * zahl; + std::cout << "Deine Lieblingszahl ist " << quad << std::endl; + +} + + diff --git a/2023_Informatik_b/typecast.cpp b/2023_Informatik_b/typecast.cpp new file mode 100644 index 0000000..3be345e --- /dev/null +++ b/2023_Informatik_b/typecast.cpp @@ -0,0 +1,59 @@ +/* Informatik B - Sommersemester 2023 +Vorlesung am 26.04.2023 +Katharina Klost + +Beispiele zur Ein-und Ausgabe +*/ + +#include // gibt Ein-und Ausgabe +#include // gibt Minimal- und Maximalwerte für die Datentypen + +int main(){ + + /*Zuweisen einer Gleitkommazahl zu einer Ganzzahl schneidet die + Nachkommastellen ab + */ + int a = 3.5; + std::cout << "a: " << a << std::endl; + + int n1 = SHRT_MAX; + short n2 = SHRT_MAX; + + + short n3 = n2 + n2; // overflow + int n4 = n1 + n2; //der größere Datentyp gewinnt + + std::cout << "n3, n4: "<(i1) / static_cast(i2); + + // Wie weiter oben, erst wird geteilt (und abgeschnitten) und dann umgewandelt + // und dann zugewiesen. + double dv3 = static_cast( i1 / i2 ); + std::cout << dv1 << ", " << dv2 << ", " << dv3 << std::endl; +} diff --git a/2023_Informatik_b/ueb.cpp b/2023_Informatik_b/ueb.cpp new file mode 100644 index 0000000..3e44710 --- /dev/null +++ b/2023_Informatik_b/ueb.cpp @@ -0,0 +1,139 @@ +#include +#include +#include + +int main() { + + // 1. + + int eingabe0 = -1; + + std::cout << "Aufgabe (1) oder (2)?" << std::endl; + std::cin >> eingabe0; + + if (eingabe0 == 1){ + int eingabe1 = -1; + std::vector zahlenfolge; + int min = 0; + int max = 0; + + while (true) { + + + std::cout << "Geben Sie eine Zahl der Zahlenfolge ein, mit 0 geben sie MIN und MAX aus, mit 9999 geben sie den Mittelwert aus: " << std::endl; + std::cin >> eingabe1; + + if (eingabe1 == 0) { + + for (unsigned i = 0; i < zahlenfolge.size(); i++){ + + if (zahlenfolge[i] < min){ + min = zahlenfolge[i]; + } + + if (zahlenfolge[i] > max){ + max = zahlenfolge[i]; + } + + } + + std::cout << "Das Maximum der Zahlenfolge ist: " << max << std::endl; + std::cout << "Das Minimum der Zahlenfolge ist: " << min << std::endl; + + break; + + } + + if (eingabe1 == 9999) { + + float summe = 0; + + for (unsigned i = 0; i < zahlenfolge.size(); i++){ + summe += zahlenfolge[i]; + } + + double mittelwert = summe / zahlenfolge.size(); + + std::cout << "Der Mittelwert der Zahlenfolge ist: " << mittelwert << std::endl; + + break; + + } + + zahlenfolge.push_back(eingabe1); + + } + + + } + + // 2. + + if (eingabe0 == 2){ + + + char eingabe01; + std::cout << "Teilaufgabe (a) oder (b) ?" << std::endl; + std::cin >> eingabe01; + + // 2 a) + if (eingabe01 == 'a'){ + + int eingabe2 = -1; + std::cout << "Geben Sie eine Zahl größer 0 ein, von der die Quersumme berechnet werden soll" << std::endl; + std::cin >> eingabe2; + + int eingabe3 = -1; + std::cout << "Soll die Quersumme mit einer while (0) oder for (1) Schleife berechnet werden?" << std::endl; + std::cin >> eingabe3; + + if (eingabe3 == 0){ + + int quersummewhile = 0; + + while (eingabe2 > 0){ + quersummewhile += eingabe2 % 10; + eingabe2 /= 10; + } + + std::cout << "Die Quersumme der Zahl ist: " << quersummewhile << std::endl; + + } + + if (eingabe3 == 1){ + + int quersummefor = 0; + + for (quersummefor; eingabe2 > 0; eingabe2 /= 10){ + quersummefor += eingabe2 % 10; + } + + std::cout << "Die Quersumme der Zahl ist: " << quersummefor << std::endl; + + } + + } + + // 2 b) + if (eingabe01 == 'b'){ + int n; + std::cout << "Geben Sie eine Zahl größer 0 ein: " << std::endl; + std::cin >> n; + + for (int i = 0; i <= n; i++) { + std::string output = ""; + if (i % 3 == 0) { + std::cout << "bli" << std::endl; + } + if (i % 5 == 0) { + std::cout << "bla" << std::endl; + } + if (i % 7 == 0) { + std::cout << "blub" << std::endl; + } + } + } + } +} + + diff --git a/2023_Informatik_b/ueb7pointer.cpp b/2023_Informatik_b/ueb7pointer.cpp new file mode 100644 index 0000000..0479ef3 --- /dev/null +++ b/2023_Informatik_b/ueb7pointer.cpp @@ -0,0 +1,135 @@ +/* Informatik B - Sommersemester 2022 +Übung 06 +Katharina Klost + +Aufgabe zu Pointern + +g++ -std=c++14 -Wall -Wextra -Werror -pedantic ./w7/ueb7pointer.cpp -o ./bin/ueb7pointer && ./bin/ueb7pointer + +*/ + +#include + +void ref(int &alpha) +{ // Call-by-Reference + std::cout << "&alpha: " << (&alpha) << std::endl; + std::cout << "alpha: " << (alpha) << std::endl; + alpha++; +} + +void val(int alpha) +{ // Call-by-Value + std::cout << "&alpha: " << (&alpha) << std::endl; + std::cout << "alpha: " << (alpha) << std::endl; + alpha++; +} + +void func1(int *alpha) +{ + std::cout << "&alpha: " << (&alpha) << std::endl; + std::cout << "alpha: " << (alpha) << std::endl; + alpha++; +} + +void func2(int *alpha) +{ + std::cout << "&alpha: " << (&alpha) << std::endl; + std::cout << "alpha: " << (alpha) << std::endl; + (*alpha)++; +} + +int main() +{ + + // Zeichnen Sie Speicherbilder, die veranschaulichen Sie was hier passiert. + // Erklären Sie die entsprechenden Ausgaben. + + int a = 42; + int b = 6; + int *c = &a; + int *d = &b; + int &e = a; + + std::cout << "a: " << a << std::endl; + std::cout << "b: " << b << std::endl; + std::cout << "c: " << c << std::endl; + std::cout << "d: " << d << std::endl; + std::cout << "e: " << e << std::endl; + std::cout << std::endl; + std::cout << "&a: " << (&a) << std::endl; + std::cout << "&b: " << (&b) << std::endl; + std::cout << "&c: " << (&c) << std::endl; + std::cout << "&d: " << (&d) << std::endl; + std::cout << "&e: " << (&e) << std::endl; + + std::cout << std::endl; + + // std::cout << (*a) << std::endl; Warum geht das nicht? + // std::cout << (*e) << std::endl; Warum geht das nicht? + + std::cout << "*c: " << (*c) << std::endl; + std::cout << "*d: " << (*d) << std::endl; + std::cout << std::endl; + std::cout << "=== Skizzieren Sie den Aufbau des Speichers zu diesem Zeitpunkt ===" << std::endl; + std::cout << std::endl; + + a = *c * *d; + std::cout << "a: " << a << std::endl; + *d -= 3; + std::cout << "*d: " << (*d) << std::endl; + b = a * b; + std::cout << "b: " << b << std::endl; + c = d; + std::cout << "*c: " << (*c) << std::endl; + + std::cout << std::endl; + std::cout << "=== Skizzieren Sie den Aufbau des Speichers zu diesem Zeitpunkt ===" << std::endl; + std::cout << std::endl; + + b = 7; + std::cout << "b: " << b << std::endl; + a = *c + *d; + std::cout << "a: " << a << std::endl; + std::cout << "&e: " << (&e) << std::endl; + std::cout << std::endl; + std::cout << std::endl; + + c = &a; + + std::cout << std::endl; + std::cout << "=== Skizzieren Sie den Aufbau des Speichers zu diesem Zeitpunkt ===" << std::endl; + std::cout << std::endl; + + std::cout << std::endl; + std::cout << "== Erklären Sie die folgenden Ausgaben ==" << std::endl; + std::cout << std::endl; + + std::cout << "a: " << a << std::endl; + std::cout << "&a: " << (&a) << std::endl; + std::cout << "Rufe ref(a) auf" << std::endl; + ref(a); + std::cout << std::endl; + + std::cout << "a: " << a << std::endl; + std::cout << "&a: " << (&a) << std::endl; + std::cout << "Rufe val(a) auf" << std::endl; + val(a); + std::cout << std::endl; + + std::cout << "a: " << a << std::endl; + + std::cout << "c: " << c << std::endl; + std::cout << "&c: " << (&c) << std::endl; + std::cout << "Rufe func1(c) auf" << std::endl; + func1(c); + std::cout << std::endl; + + std::cout << "c: " << c << std::endl; + std::cout << "&c: " << (&c) << std::endl; + + std::cout << "Rufe func2(c) auf" << std::endl; + func2(c); + std::cout << "c: " << c << std::endl; + std::cout << "&c: " << (&c) << std::endl; + std::cout << "a: " << a << std::endl; +} diff --git a/2023_Informatik_b/ultrasort.cpp b/2023_Informatik_b/ultrasort.cpp new file mode 100644 index 0000000..b2e9f65 --- /dev/null +++ b/2023_Informatik_b/ultrasort.cpp @@ -0,0 +1,185 @@ +// clear && g++ -std=c++14 -Wall -Wextra -Werror -pedantic ./w5/hilfsfunktionen.cpp ./w5/ultrasort.cpp -o ./bin/ultrasort && ./bin/ultrasort + +#include "hilfsfunktionen.hpp" +#include +#include +#include + +bool isSorted(const std::vector& vec); +void insertionSort(std::vector& elems); +void merge(std::vector& first_part, std::vector& second_part, std::vector& elems); +void ultraSort(std::vector& elems); +void ultraSortParam(std::vector& elems, double k); + +int main() { + + srand(time(NULL)); + double time; + std::vector array; + + // Runtime (a) + std::cout << "############ RUNTIME (ultraSort) ############ \n"; + for (int size = 10000; size <= 100000; size *= 10) { + std::cout << " " << size << " Elemente:" << std::endl; + + array = hf::zufalls_array(size); + + time = clock(); + ultraSort(array); + time = clock() - time; + + std::cout << " Zufällig: " << (time/CLOCKS_PER_SEC) << " Sekunden" << std::endl; + + array = hf::sortiertes_array(size, true); + + time = clock(); + ultraSort(array); + time = clock() - time; + + std::cout << " Aufsteigend: " << (time/CLOCKS_PER_SEC) << " Sekunden" << std::endl; + + array = hf::sortiertes_array(size, false); + + time = clock(); + ultraSort(array); + time = clock() - time; + + std::cout << " Absteigend: " << (time/CLOCKS_PER_SEC) << " Sekunden" << std::endl; + + if (isSorted(array)) { + std::cout << " Array is sorted.\n"; + } else { + std::cout << " Array is not sorted.\n"; + } + + } + + // Optimal k + std::cout << "############ OPTIMAL K ############ \n"; + std::vector k_values = {0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9}; + double optimal_k = 0; + double shortest_time = std::numeric_limits::max(); + for (double k : k_values) { + + array = hf::zufalls_array(10000); + time = clock(); + ultraSortParam(array, k); + time = clock() - time; + + if (time < shortest_time) { + shortest_time = time; + optimal_k = k; + } + } + std::cout << " Optimal k is " << optimal_k << std::endl; + + // Runtime (b) + std::cout << "############ RUNTIME (ultraSortParam) ############ \n"; + for (int size = 10000; size <= 100000; size *= 10) { + std::cout << " " << size << " Elemente:" << std::endl; + + array = hf::zufalls_array(size); + + time = clock(); + ultraSortParam(array, optimal_k); + time = clock() - time; + + std::cout << " Zufällig: " << (time/CLOCKS_PER_SEC) << " Sekunden" << std::endl; + + array = hf::sortiertes_array(size, true); + + time = clock(); + ultraSortParam(array, optimal_k); + time = clock() - time; + + std::cout << " Aufsteigend: " << (time/CLOCKS_PER_SEC) << " Sekunden" << std::endl; + + array = hf::sortiertes_array(size, false); + + time = clock(); + ultraSortParam(array, optimal_k); + time = clock() - time; + + std::cout << " Absteigend: " << (time/CLOCKS_PER_SEC) << " Sekunden" << std::endl; + + if (isSorted(array)) { + std::cout << " Array is sorted.\n"; + } else { + std::cout << " Array is not sorted.\n"; + } + + } + + return 0; +} + +bool isSorted(const std::vector& vec) { + for (size_t i = 0; i < vec.size() - 1; ++i) { + if (vec[i] > vec[i + 1]) { + return false; + } + } + return true; +} + +void insertionSort(std::vector& elems){ + int key=elems[0]; + unsigned shiftindex; + for(unsigned i = 1; i0&&elems[shiftindex-1]>=key;shiftindex--){ + elems[shiftindex] = elems[shiftindex-1]; + } + elems[shiftindex] = key; + } +} + +void merge(std::vector& first_part, std::vector& second_part, std::vector& elems){ + unsigned i = 0; + unsigned j = 0; + unsigned begin = 0; + unsigned end = elems.size(); + + while(begin + i + j < end){ + if ( j >= second_part.size() || ((i& elems){ + if (elems.size() <= 1) { + return; + } + if (elems.size() < 10) { + insertionSort(elems); + return; + } + int groesse_erster_teil = elems.size() / 3; + std::vector erster_teil(elems.begin(), elems.begin() + groesse_erster_teil); + std::vector zweiter_teil(elems.begin() + groesse_erster_teil, elems.end()); + insertionSort(erster_teil); + ultraSort(zweiter_teil); + merge(erster_teil, zweiter_teil, elems); +} + +void ultraSortParam(std::vector& elems, double k){ + if (elems.size() <= 1) { + return; + } + if (elems.size() < 10) { + insertionSort(elems); + return; + } + int groesse_erster_teil = static_cast(k * elems.size()); + std::vector erster_teil(elems.begin(), elems.begin() + groesse_erster_teil); + std::vector zweiter_teil(elems.begin() + groesse_erster_teil, elems.end()); + insertionSort(erster_teil); + ultraSortParam(zweiter_teil, k); + merge(erster_teil, zweiter_teil, elems); +} \ No newline at end of file diff --git a/2023_Informatik_b/upper.cpp b/2023_Informatik_b/upper.cpp new file mode 100644 index 0000000..69d175c --- /dev/null +++ b/2023_Informatik_b/upper.cpp @@ -0,0 +1,33 @@ +#include +#include + +/* +- Voraussetzungen: str ist ein String +- Ergebnis: str ist ein String, der nur aus Großbuchstaben besteht +- Seiteneffekte: keine + +Der Rückgabetyp ist string, weil wir einen neuen String zurückgeben wollen, der nur aus Großbuchstaben besteht. +Der Parameter ist string, weil wir einen String übergeben wollen, bei dem wir die Buchstaben in Großbuchstaben umwandeln wollen. + +*/ +std::string upper(std::string str); + +int main() { + + std::cout << "Bitte gebe einen String ein der groß geschrieben werden soll: "; + std::string s; + std::getline(std::cin, s); + std::cout << "Hier ist dein neuer String: " << upper(s) << std::endl; + +} + +std::string upper(std::string str) { + for (unsigned i = 0; i < str.length(); i++) { + if (str[i] >= 'a' && str[i] <= 'z') { + str[i] = str[i] - 32; + } + } + + return str; + +} diff --git a/2023_Informatik_b/vector.cpp b/2023_Informatik_b/vector.cpp new file mode 100644 index 0000000..a13e515 --- /dev/null +++ b/2023_Informatik_b/vector.cpp @@ -0,0 +1,43 @@ +/* Informatik B - Sommersemester 2023 +Vorlesung am 28.04.2023 +Katharina Klost + +Beispiele zu vector +*/ + +#include +#include + +int main(){ + + std::vector zahlen = {10,4,20,24,7,34,1,55,34,17,4}; + +//vector mit 10 Boolean einträgen, die alle 0 bzw false sind + std::vector wahrheitswerte(10); + +//vector mit 5 Einträgen, alle sind "Mo" + std::vector montage(5,"Mo"); + +std::cout << zahlen[3] << std::endl; + +zahlen[3] = 100; + +std::cout << zahlen[3] << std::endl; +std::cout << zahlen.size() << std::endl; +zahlen.push_back(1234); +std::cout << zahlen.size() << std::endl; + + + //ACHTUNG! Kein Fehler, wenn wir auf Daten außerhalb des vector zugreifen + std::cout << zahlen[zahlen.size()] << std::endl; + + + //Wird auf einen Index größer oder gleich size() des vector + // zugegriffen gibt es undefiniertes Verhalten. + // Es kann ein Wert zurückgegeben werde, oder ein Speicherzugriffehler + // ausgegeben werden. + // Wird ein Wert außerhalb der Grenzen zugewiesen, wird die Größe + // des vector nicht angepasst + std::cout << zahlen[100000] << std::endl; + std::cout << zahlen.size() << std::endl; +} diff --git a/2023_Informatik_b/vector_schleifen.cpp b/2023_Informatik_b/vector_schleifen.cpp new file mode 100644 index 0000000..b00a452 --- /dev/null +++ b/2023_Informatik_b/vector_schleifen.cpp @@ -0,0 +1,30 @@ +/* Informatik B - Sommersemester 2023 +Vorlesung am 28.04.2023 +Katharina Klost + +Beispiele zu vector und schleifen +*/ + +#include +#include + +int main(){ + std::vector zahlen = {10,4,20,24,7,34,1,55,34,17,4}; + int sum = 0; + + //Schleife läuft durch alle Indizes des vector und summiert die Einträge auf + for (unsigned int i = 0; i +#include + +/* +KLassenhierarchie + +1. tier + Attribute: gewicht, groesse + Methoden: fortbewegen(), atmen(), essen() +1.1. saeugetier +1.1.1. hund + Attribute: gattung + Methoden: anbellen(tier t), fortpflanzen(hund h) +1.1.1.1. pudel +1.2. insekt +1.2.1. biene +*/ + +/* +Klasse Tier: Basis-Klasse in der Klassenstruktur. +Kann genutzt werden, um allgemeine Eigenschaften und Verhaltensweisen von Tieren abzubilden. +Wir haben die Methoden essen(), atmen(), und fortbewegen() als virtual in der Basisklasse Tier definiert, was bedeutet, dass sie in den abgeleiteten Klassen überschrieben werden koennen, wenn dies gewünscht wird. +*/ +class Tier +{ +public: + int gewicht; + int groesse; + + // Konstruktor: Kann aufgerufen werden, um ein neues Tierobjekt mit definiertem Gewicht und Groesse zu erstellen. + // Gibt ein neues Tierobjekt zurück. + // Fügt dem Programmzustand ein neues Tierobjekt hinzu. + Tier(int gewicht, int groesse) : gewicht(gewicht), groesse(groesse) {} + + // Destruktor: Wird aufgerufen, wenn ein Tierobjekt geloescht wird. + // Gibt nichts zurück. + // Entfernt das Tierobjekt aus dem Zustand des Programms. + ~Tier() {} + + // Kann aufgerufen werden, um das Verhalten eines Tiers zu simulieren, sich fortzubewegen. + // Gibt Text zurück und hat keine Effekte. + virtual void fortbewegen() + { + std::cout << "Tier bewegt sich fort." << std::endl; + } + + // Kann aufgerufen werden, um das Verhalten eines Tiers zu simulieren, zu atmen. + // Gibt Text zurück und hat keine Effekte. + virtual void atmen() + { + std::cout << "Tier atmet." << std::endl; + } + + // Kann aufgerufen werden, um das Verhalten eines Tiers zu simulieren, zu essen. + // Gibt Text zurück und hat keine Effekte. + virtual void essen() + { + std::cout << "Tier isst." << std::endl; + } + + // Kann aufgerufen werden, um das Gewicht des Tiers zu ermitteln. + // Gibt das Gewicht des Tiers als Integer zurück. + // Ändert den Zustand des Programms nicht. + int getGewicht() + { + return gewicht; + } + + // Kann aufgerufen werden, um die Groesse des Tiers zu ermitteln. + // Gibt die Groesse des Tiers als Integer zurück. + // Ändert den Zustand des Programms nicht. + int getGroesse() + { + return groesse; + } +}; + +// Klasse Saeugetier (Säugetier): Erbt von der Klasse Tier. +// Kann genutzt werden, um ein spezifisches Tier zu erstellen, das ein Säugetier ist. +class Saeugetier : public Tier +{ +public: + // Konstruktor: Kann aufgerufen werden, um ein neues Saeugetier-Objekt mit definiertem Gewicht und Groesse zu erstellen. + // Gibt ein neues Saeugetier-Objekt zurück. + // Fügt dem Programmzustand ein neues Saeugetier-Objekt hinzu. + Saeugetier(int gewicht, int groesse) : Tier(gewicht, groesse) {} +}; + +// Klasse Hund: Erbt von der Klasse Saeugetier. +// Kann genutzt werden, um ein spezifisches Tier zu erstellen, das ein Hund ist. +class Hund : public Saeugetier +{ + +public: + std::string gattung; + + // Konstruktor: Kann aufgerufen werden, um ein neues Hund-Objekt mit definiertem Gewicht, Groesse und Gattung zu erstellen. + // Gibt ein neues Hund-Objekt zurück. + // Fügt dem Programmzustand ein neues Hund-Objekt hinzu. + Hund(int gewicht, int groesse, std::string gattung) : Saeugetier(gewicht, groesse), gattung(gattung) {} + + // Destruktor: Wird aufgerufen, wenn ein Hund-Objekt geloescht wird. + // Gibt nichts zurück. + // Entfernt das Hund-Objekt aus dem Zustand des Programms. + ~Hund() {} + + // Kann aufgerufen werden, um das Verhalten eines Hundes zu simulieren, ein anderes Tier anzubellen. + // Gibt Text zurück und hat keine Effekte. + void anbellen(Tier t) + { + std::cout << "Hund bellt anderen Hund an" << std::endl; + } + + // Kann aufgerufen werden, um das Verhalten eines Hundes zu simulieren, sich fortzupflanzen. + // Gibt Text zurück und hat keine Effekte. + void fortpflanzen(Hund h) + { + std::cout << "Hund pflanzt sich mit anderem Hund fort" << std::endl; + } + + // Kann aufgerufen werden, um die Gattung des Hundes zu ermitteln. + // Gibt die Gattung des Hundes als String zurück. + // Ändert den Zustand des Programms nicht. + std::string getGattung() + { + return gattung; + } +}; + +// Klasse Pudel: Erbt von der Klasse Hund. +// Kann genutzt werden, um ein spezifisches Tier zu erstellen, das ein Pudel ist. +class Pudel : public Hund +{ +public: + // Konstruktor: Kann aufgerufen werden, um ein neues Pudel-Objekt mit definiertem Gewicht, Groesse und Gattung zu erstellen. + // Gibt ein neues Pudel-Objekt zurück. + // Fügt dem Programmzustand ein neues Pudel-Objekt hinzu. + Pudel(int gewicht, int groesse, std::string gattung) : Hund(gewicht, groesse, gattung) {} + + // Destruktor: Wird aufgerufen, wenn ein Pudel-Objekt geloescht wird. + // Gibt nichts zurück. + // Entfernt das Pudel-Objekt aus dem Zustand des Programms. + ~Pudel() {} +}; + +int main() +{ + Pudel Bello(10, 45, "Pudel"); + Pudel Strolch(20, 60, "Pudel"); + + int gewichtBello = Bello.getGewicht(); + int groesseBello = Bello.getGroesse(); + std::string gattungBello = Bello.getGattung(); + + std::cout << "Ein Hund der gattung " << gattungBello << ", mit der groesse " << groesseBello << " und mit dem Gewicht " << gewichtBello << " wurde erstellt" << std::endl; + + Bello.essen(); + Bello.atmen(); + Bello.fortbewegen(); + Bello.anbellen(Strolch); + Bello.fortpflanzen(Strolch); +} diff --git a/2024_Datenbanksysteme/README.md b/2024_Datenbanksysteme/README.md new file mode 100644 index 0000000..4123166 --- /dev/null +++ b/2024_Datenbanksysteme/README.md @@ -0,0 +1,157 @@ +# Data preprocessing + +```bash +cd path/to/geowebapp +``` + +(OPTIONAL) + +Eigentlich sind die Daten schon verarbeitet in data/preprocessed + +```bash +python3 data/preprocess_bevoelkerung.py +``` +```bash +python3 data/preprocess_hochschulen.py # Nur wenn nötig, dauert sehr lange wegen Koordinaten und kann auch abrechen +``` +```bash +python3 data/preprocess_mieten.py +``` + +# Setup Postgresql MacOS + +Bei MacOS installiert man im Terminal mit Brew, weis nicht was das bei Windows ist. Geht bestimmt auch über den normalen Installer von deren Website. + +## Install + + +```bash +brew install postgresql@14 +``` + +## Start + +```bash +/opt/homebrew/opt/postgresql@14/bin/postgres -D /opt/homebrew/var/postgresql@14 +``` + + +# Run sql + +```bash +psql -h localhost -p 5432 -U -d postgres +``` + +1. create_database.sql + +```sql +CREATE DATABASE geowebapp; +``` + +2. Check + +```sql +\l +``` + +3. Switch to geowebapp + +```sql +\c geowebapp +``` + +4. Create tables + +```sql +-- Create a staging table for loading CSV data +CREATE TABLE Bevoelkerung ( + region_code VARCHAR(10) PRIMARY KEY, + region_name VARCHAR(50), + total_population INT, + male_population INT, + female_population INT, + region_type VARCHAR(20), + bundesland VARCHAR(50) +); + +-- Create the Hochschulen table +CREATE TABLE Hochschulen ( + namekurz_h VARCHAR(50), + name_h VARCHAR(255) PRIMARY KEY, + typ VARCHAR(100), + traeger VARCHAR(100), + land VARCHAR(50), + studenten INT, + gjahr INT, + precht VARCHAR(10), + hrecht VARCHAR(10), + str VARCHAR(255), + plz INT, + ort VARCHAR(100), + web VARCHAR(255), + lat DECIMAL(18, 10), + lon DECIMAL(18, 10) +); + +-- Mieten +CREATE TABLE Mieten ( + land VARCHAR(50) PRIMARY KEY, + mieten_ab_2019 DECIMAL(4,1), + mieten_insgesamt DECIMAL(4,1) +); +``` + +5. Insert data + +```sql +-- Copy data into Bevoelkerung staging table +COPY public.Bevoelkerung (region_code, region_name, total_population, male_population, female_population, region_type, bundesland) +FROM '/Users/huaqo/Developer/geowebapp/data/preprocessed/cleaned_bevoelkerung.csv' +DELIMITER ',' +CSV HEADER; + +-- Copy data into Hochschulen table +COPY public.Hochschulen (namekurz_h, name_h, typ, traeger, land, studenten, gjahr, precht, hrecht, str, plz, ort, web, lat, lon) +FROM '/Users/huaqo/Developer/geowebapp/data/preprocessed/cleaned_hochschulen.csv' +DELIMITER ',' +CSV HEADER; + +-- Copy data into Mieten table +COPY public.Mieten (land, mieten_ab_2019, mieten_insgesamt) +FROM '/Users/huaqo/Developer/geowebapp/data/preprocessed/cleaned_mieten.csv' +DELIMITER ',' +CSV HEADER; +``` + +6. Check + +```sql +\dt +``` + +```sql +SELECT * FROM your_table_name LIMIT 5; +``` + +# Install requirements + +```bash +pip install -r requirements.txt +``` + +# Change server path in app.py +For example + +```python +SQLALCHEMY_DATABASE_URI = os.getenv('DATABASE_URL', 'postgresql://huaqo:0000@localhost:5432/geowebapp') +``` + +huaqo sollte mit deinem usernamen ersetzt werden und 0000 mit deinem password. Der rest sollte gleich sein. Vielleicht hast du einen anderen port, nicht 5432. + +# Run app + +```bash +python app.py +``` + +öffne `http://127.0.0.1:5000` in einem Browser um die App zu sehen, solange flask im Terminal läuft. \ No newline at end of file diff --git a/2024_Datenbanksysteme/app.py b/2024_Datenbanksysteme/app.py new file mode 100644 index 0000000..6eb0888 --- /dev/null +++ b/2024_Datenbanksysteme/app.py @@ -0,0 +1,231 @@ +from flask import Flask, render_template, request +from flask_sqlalchemy import SQLAlchemy +from tabulate import tabulate +from sqlalchemy import text +import folium +import os +from decimal import Decimal + +## INIT +app = Flask(__name__, template_folder=os.path.abspath('.')) +app.config['SQLALCHEMY_DATABASE_URI'] = os.getenv('DATABASE_URL', 'postgresql://huaqo:0000@localhost:5432/geowebapp') +app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False +db = SQLAlchemy(app) + + +## QUERIES +DATASET = """ +SELECT {attributes} +FROM Hochschulen h +JOIN Mieten m ON m.land = h.land +LEFT JOIN Bevoelkerung b ON b.region_name = h.ort +AND b.bundesland = h.land +AND ( + b.region_type = 'kreis' + OR b.region_name = 'Berlin' + OR b.region_name = 'Hamburg' + OR b.region_name = 'Bremen' + OR b.region_name = 'Hannover' AND b.region_type = 'landeshauptstadt' + OR b.region_name = 'Saarbrücken' AND b.region_type = 'landeshauptstadt') +WHERE {search_attr} ILIKE :search +ORDER BY {sort_by} {order} +LIMIT {limit}; +""" +DATASET_GROUPED = """ +SELECT {group_by}, COUNT(*) AS Anzahl +FROM Hochschulen +GROUP BY {group_by} +ORDER BY Anzahl DESC; +""" + +## PARAMETERS +order_by_options = [ + {'value': 'land', 'label': 'Bundesland'}, + {'value': 'typ', 'label': 'Hochschultyp'}, + {'value': 'traeger', 'label': 'Träger'}, + {'value': 'precht', 'label': 'Promotionsrecht'}, + {'value': 'hrecht', 'label': 'Habilitationsrecht'} +] + +shortcut_options = [ + {'url': '//127.0.0.1:5000/?search_attr=typ&search=&order=ASC&sort_by=gjahr&limit=10&attributes=&attributes=h.name_h&attributes=h.gjahr&attributes=h.ort&generate_map=true', 'label': 'Älteste Hochschulen in Deutschland'}, + {'url': '//127.0.0.1:5000/?search_attr=typ&search=&order=DESC&sort_by=gjahr&limit=10&attributes=&attributes=h.name_h&attributes=h.gjahr&attributes=h.ort&generate_map=true', 'label': 'Jüngste Hochschulen in Deutschland'}, + {'url': '//127.0.0.1:5000/?search_attr=typ&search=&order=DESC&sort_by=studenten&limit=10&attributes=&attributes=h.name_h&attributes=h.studenten&attributes=h.ort&generate_map=true', 'label': 'Hochschulen mit den meisten Studenten'}, + {'url': '//127.0.0.1:5000/?search_attr=h.land&search=Berlin&order=DESC&sort_by=studenten&limit=10&attributes=&attributes=h.name_h&attributes=h.studenten&generate_map=true', 'label': 'Berliner Hochschulen mit den meisten Studenten'}, + {'url': '//127.0.0.1:5000/?search_attr=typ&search=&order=ASC&sort_by=studenten&limit=10&attributes=&attributes=h.name_h&attributes=h.studenten&attributes=h.ort&generate_map=true', 'label': 'Hochschulen mit den wenigsten Studenten'}, + {'url': '//127.0.0.1:5000/?search_attr=typ&search=&order=DESC&sort_by=b.total_population&limit=10&attributes=&attributes=h.name_h&attributes=h.ort&attributes=b.total_population&generate_map=true', 'label': 'Hochschulen mit den meisten Einwohnern'}, + {'url': '//127.0.0.1:5000/?search_attr=typ&search=&order=ASC&sort_by=b.total_population&limit=10&attributes=&attributes=h.name_h&attributes=h.ort&attributes=b.total_population&generate_map=true', 'label': 'Hochschulen mit den wenigsten Einwohnern'}, + {'url': '//127.0.0.1:5000/?search_attr=typ&search=&order=ASC&sort_by=m.mieten_ab_2019&limit=100&attributes=&attributes=h.name_h&attributes=h.ort&attributes=m.mieten_ab_2019&generate_map=true', 'label': 'Hochschulen mit den niedrigsten Mieten'}, + {'url': '//127.0.0.1:5000/?search_attr=typ&search=&order=DESC&sort_by=m.mieten_ab_2019&limit=200&attributes=&attributes=h.name_h&attributes=h.ort&attributes=m.mieten_ab_2019&generate_map=true', 'label': 'Hochschulen mit den höchsten Mieten'} +] + +search_options = [ + {'value': 'h.name_h', 'label': 'Hochschulname'}, + {'value': 'h.typ', 'label': 'Typ'}, + {'value': 'h.traeger', 'label': 'Träger'}, + {'value': 'h.land', 'label': 'Land'}, + {'value': 'h.precht', 'label': 'Precht'}, + {'value': 'h.hrecht', 'label': 'Hrecht'}, + {'value': 'h.str', 'label': 'Straße'}, + {'value': 'h.ort', 'label': 'Ort'}, + {'value': 'h.web', 'label': 'Web'} +] + +order_options = [ + {'value': 'ASC', 'label': 'Aufsteigend'}, + {'value': 'DESC', 'label': 'Absteigend'} +] + +sort_by_options = [ + {'value': 'name_h', 'label': 'Hochschulname'}, + {'value': 'gjahr', 'label': 'Gründungsjahr'}, + {'value': 'typ', 'label': 'Typ'}, + {'value': 'traeger', 'label': 'Träger'}, + {'value': 'land', 'label': 'Land'}, + {'value': 'studenten', 'label': 'Studenten'}, + {'value': 'precht', 'label': 'Precht'}, + {'value': 'hrecht', 'label': 'Hrecht'}, + {'value': 'plz', 'label': 'PLZ'}, + {'value': 'str', 'label': 'Straße'}, + {'value': 'ort', 'label': 'Ort'}, + {'value': 'b.total_population', 'label': 'Einwohner'}, + {'value': 'm.mieten_ab_2019', 'label': 'Mieten'} +] + +checkbox_options = [ + {'value': 'h.name_h', 'label': 'Hochschulname'}, + {'value': 'h.gjahr', 'label': 'Gründungsjahr'}, + {'value': 'h.typ', 'label': 'Typ'}, + {'value': 'h.traeger', 'label': 'Träger'}, + {'value': 'h.land', 'label': 'Land'}, + {'value': 'h.studenten', 'label': 'Studenten'}, + {'value': 'h.precht', 'label': 'Precht'}, + {'value': 'h.hrecht', 'label': 'Hrecht'}, + {'value': 'h.plz', 'label': 'PLZ'}, + {'value': 'h.str', 'label': 'Straße'}, + {'value': 'h.ort', 'label': 'Ort'}, + {'value': 'h.web', 'label': 'Web'}, + {'value': 'b.total_population', 'label': 'Einwohner'}, + {'value': 'm.mieten_ab_2019', 'label': 'Mieten'} +] + +## DATA QUERY +class Dataset_Parameters: + def __init__(self, order='ASC', limit='10', sort_by='gjahr', attributes=['name_h'], search='', search_attr='name_h', group_by='typ'): + if attributes is None: + attributes = ['name_h'] + self.order = order + self.limit = limit + self.sort_by = sort_by + self.attributes = attributes + self.search = search + self.search_attr = search_attr + self.group_by = group_by + + def update(self, **kwargs): + for key, value in kwargs.items(): + if hasattr(self, key): + setattr(self, key, value) + + @classmethod + def get_parameters(cls, request): + parameters = cls() + parameters.update( + order=request.args.get('order', parameters.order), + limit=request.args.get('limit', parameters.limit), + sort_by=request.args.get('sort_by', parameters.sort_by), + attributes=request.args.getlist('attributes') or parameters.attributes, + search=request.args.get('search', parameters.search), + search_attr=request.args.get('search_attr', parameters.search_attr), + group_by=request.args.get('group_by', parameters.group_by) + ) + parameters.attributes = [attr for attr in parameters.attributes if attr] + if 'lat' not in parameters.attributes: + parameters.attributes.append('lat') + if 'lon' not in parameters.attributes: + parameters.attributes.append('lon') + return parameters + +def get_data(query_template, parameters): + params_dict = {k: v for k, v in parameters.__dict__.items()} + for key, value in params_dict.items(): + if isinstance(value, list): + params_dict[key] = ', '.join(value) + query = query_template.format(**params_dict) + result = db.session.execute(text(query), {'search': f"%{params_dict.get('search', '')}%"}) + + return result.fetchall() + +## TABLES +def create_table(data, parameters): + lat_index = parameters.attributes.index('lat') if 'lat' in parameters.attributes else -1 + lon_index = parameters.attributes.index('lon') if 'lon' in parameters.attributes else -1 + + filtered_data = [] + for row in data: + filtered_row = [value for i, value in enumerate(row) if i not in [lat_index, lon_index]] + filtered_data.append(filtered_row) + + filtered_attributes = [attr for attr in parameters.attributes if attr not in ['lat', 'lon']] + table = tabulate(filtered_data, headers=filtered_attributes, tablefmt='html') + return table +def create_grouped_table(data, parameters): + headers = [parameters.group_by, 'Anzahl'] + table = tabulate(data, headers=headers, tablefmt='html') + return table + +## MAP +def generate_map(data, column_names): + map_center = [51.1657, 10.4515] + map = folium.Map(location=map_center, tiles="cartodb positron", zoom_start=6) + + try: + lat_index = column_names.index('lat') + lon_index = column_names.index('lon') + except ValueError: + print("Lat or Lon column not found in the result set") + return None + + bounds = [] + for row in data: + lat = row[lat_index] + lon = row[lon_index] + if isinstance(lat, Decimal): + lat = float(lat) + if isinstance(lon, Decimal): + lon = float(lon) + if lat is not None and lon is not None: + folium.Marker([lat, lon], popup=f"Data: {row}").add_to(map) + bounds.append([lat, lon]) + + if bounds: + map.fit_bounds(bounds) + + map_html = map._repr_html_() + return map_html + +## VIEWS +@app.route('/', methods=['GET']) +def home(): + dataset_parameters = Dataset_Parameters.get_parameters(request) + dataset = get_data(DATASET, dataset_parameters) + dataset_grouped = get_data(DATASET_GROUPED, dataset_parameters) + table = create_table(dataset, dataset_parameters) + table_grouped = create_grouped_table(dataset_grouped, dataset_parameters) + map = generate_map(dataset, dataset_parameters.attributes) + return render_template( + 'index.html', + table=table, + table_grouped=table_grouped, + parameters=dataset_parameters, + map=map, + order_by_options=order_by_options, + search_options=search_options, + order_options=order_options, + sort_by_options=sort_by_options, + shortcut_options=shortcut_options, + checkbox_options=checkbox_options) + +## RUN +if __name__ == '__main__': + app.run(debug=True) diff --git a/2024_Datenbanksysteme/data/preprocess_bevoelkerung.py b/2024_Datenbanksysteme/data/preprocess_bevoelkerung.py new file mode 100644 index 0000000..888c9b4 --- /dev/null +++ b/2024_Datenbanksysteme/data/preprocess_bevoelkerung.py @@ -0,0 +1,62 @@ +import pandas as pd + +def clean_bevoelkerung(file_path,cleaned_file_path): + df = pd.read_csv(file_path, delimiter=';', encoding='ISO-8859-1', skiprows=8) + + df.columns = [ + 'region_code', 'region_name', 'total_population', 'male_population', 'female_population' + ] + + df['total_population'] = pd.to_numeric(df['total_population'], errors='coerce').astype('Int64') + df['male_population'] = pd.to_numeric(df['male_population'], errors='coerce').astype('Int64') + df['female_population'] = pd.to_numeric(df['female_population'], errors='coerce').astype('Int64') + + df = df.dropna(subset=['region_code', 'region_name', 'total_population', 'male_population', 'female_population']) + + df['region_name'] = df['region_name'].str.replace(' ', '') + + bundesland_mapping = { + '01': 'Schleswig-Holstein', + '02': 'Hamburg', + '03': 'Niedersachsen', + '04': 'Bremen', + '05': 'Nordrhein-Westfalen', + '06': 'Hessen', + '07': 'Rheinland-Pfalz', + '08': 'Baden-Württemberg', + '09': 'Bayern', + '10': 'Saarland', + '11': 'Berlin', + '12': 'Brandenburg', + '13': 'Mecklenburg-Vorpommern', + '14': 'Sachsen', + '15': 'Sachsen-Anhalt', + '16': 'Thüringen' + } + + def get_region_info(region_code,region_name): + if 'kreis' in region_name.lower(): + parts = region_name.split(',') + region_name_clean = parts[0] + region_type = 'kreis' + elif ',' in region_name: + parts = region_name.split(',') + region_name_clean = parts[0] + region_type = parts[1].lower() + else: + region_name_clean = region_name + region_type = 'bundesland' + + bundesland_code = region_code[:2] + bundesland_name = bundesland_mapping.get(bundesland_code, 'Unknown') + + return region_type, region_name_clean, bundesland_name + + df[['region_type', 'region_name', 'bundesland']] = df.apply(lambda x: pd.Series(get_region_info(x['region_code'], x['region_name'])), axis=1) + + df.to_csv(cleaned_file_path, index=False) + return df + +bevoelkerung_file_path = 'data/source/bevoelkerung.csv' +bevoelkerung_cleaned_file_path = 'data/preprocessed/cleaned_bevoelkerung.csv' +cleaned_bevoelkerung_df = clean_bevoelkerung(bevoelkerung_file_path, bevoelkerung_cleaned_file_path) \ No newline at end of file diff --git a/2024_Datenbanksysteme/data/preprocess_hochschulen.py b/2024_Datenbanksysteme/data/preprocess_hochschulen.py new file mode 100644 index 0000000..6ffd5dc --- /dev/null +++ b/2024_Datenbanksysteme/data/preprocess_hochschulen.py @@ -0,0 +1,58 @@ +import pandas as pd +from geopy.geocoders import Nominatim +from geopy.exc import GeocoderTimedOut, GeocoderUnavailable, GeocoderServiceError +import time + +def get_lat_lon_from_plz(plz, country_code='DE', retries=1, delay=5): + geolocator = Nominatim(user_agent="your_app_name_here", timeout=10) + for attempt in range(retries): + try: + location = geolocator.geocode({'postalcode': plz, 'country': country_code}) + if location: + return location.latitude, location.longitude + except (GeocoderTimedOut, GeocoderUnavailable, GeocoderServiceError) as e: + print(f"Geocoding attempt {attempt + 1} failed: {e}") + time.sleep(delay) + return None, None + +def add_lat_lon_to_df(df): + df['latitude'] = None + df['longitude'] = None + + for idx, row in df.iterrows(): + plz = row['postleitzahl_hausanschrift'] + lat, lon = get_lat_lon_from_plz(plz) + df.at[idx, 'latitude'] = lat + df.at[idx, 'longitude'] = lon + + return df + +def clean_hochschulen(file_path, cleaned_file_path): + df = pd.read_csv(file_path, delimiter=';', dtype=str) + + df.columns = [ + 'hochschulkurzname', 'hochschulname', 'hochschultyp', 'traegerschaft', + 'bundesland', 'anzahl_studierende', 'gruendungsjahr', 'promotionsrecht', + 'habilitationsrecht', 'strasse', 'postleitzahl_hausanschrift', + 'ort_hausanschrift', 'home_page' + ] + + df['promotionsrecht'] = df['promotionsrecht'].map({'Ja': True, 'Nein': False}) + df['habilitationsrecht'] = df['habilitationsrecht'].map({'Ja': True, 'Nein': False}) + + df.dropna(subset=['hochschulkurzname', 'hochschulname', 'hochschultyp', 'traegerschaft', 'bundesland', + 'anzahl_studierende', 'gruendungsjahr', 'promotionsrecht', 'habilitationsrecht', + 'strasse', 'postleitzahl_hausanschrift', 'ort_hausanschrift', 'home_page'], how='any', inplace=True) + + + df['anzahl_studierende'] = pd.to_numeric(df['anzahl_studierende'], errors='coerce').astype('Int64') + df['gruendungsjahr'] = pd.to_numeric(df['gruendungsjahr'], errors='coerce').astype('Int64') + df['postleitzahl_hausanschrift'] = df['postleitzahl_hausanschrift'].astype(str) + + df = add_lat_lon_to_df(df) + df.to_csv(cleaned_file_path, index=False) + return df + +hochschulen_file_path = 'data/source/hochschulen.csv' +hochschulen_cleaned_file_path = 'data/preprocessed/cleaned_hochschulen.csv' +cleaned_hochschulen_df = clean_hochschulen(hochschulen_file_path, hochschulen_cleaned_file_path) \ No newline at end of file diff --git a/2024_Datenbanksysteme/data/preprocess_mieten.py b/2024_Datenbanksysteme/data/preprocess_mieten.py new file mode 100644 index 0000000..da48898 --- /dev/null +++ b/2024_Datenbanksysteme/data/preprocess_mieten.py @@ -0,0 +1,23 @@ +import pandas as pd +def clean_mieten(file_path,cleaned_file_path): + df = pd.read_csv(file_path, delimiter=';', encoding='ISO-8859-1') + + + df.columns = [ + 'land', 'mieten_ab_2019', 'mieten_insgesamt' + ] + + df['land'] = df['land'].str.encode('ISO-8859-1').str.decode('utf-8') + + + df['mieten_ab_2019'] = pd.to_numeric(df['mieten_ab_2019'], errors='coerce').astype('float') + df['mieten_insgesamt'] = pd.to_numeric(df['mieten_insgesamt'], errors='coerce').astype('float') + + df['land'] = df['land'].str.replace('"', '') + + df.to_csv(cleaned_file_path, index=False) + return df + +mieten_file_path = 'data/source/nettokaltmieten.csv' +mieten_cleaned_file_path = 'data/preprocessed/cleaned_mieten.csv' +cleaned_mieten_df = clean_mieten(mieten_file_path, mieten_cleaned_file_path) \ No newline at end of file diff --git a/2024_Datenbanksysteme/data/preprocessed/cleaned_bevoelkerung.csv b/2024_Datenbanksysteme/data/preprocessed/cleaned_bevoelkerung.csv new file mode 100644 index 0000000..3e39063 --- /dev/null +++ b/2024_Datenbanksysteme/data/preprocessed/cleaned_bevoelkerung.csv @@ -0,0 +1,447 @@ +region_code,region_name,total_population,male_population,female_population,region_type,bundesland +01,Schleswig-Holstein,2953270,1443269,1510001,bundesland,Schleswig-Holstein +01001,Flensburg,92550,45874,46676,kreis,Schleswig-Holstein +01002,Kiel,247717,120149,127568,kreis,Schleswig-Holstein +01003,Lübeck,218095,104723,113372,kreis,Schleswig-Holstein +01004,Neumünster,79502,39256,40246,kreis,Schleswig-Holstein +01051,Dithmarschen,135252,66561,68691,kreis,Schleswig-Holstein +01053,HerzogtumLauenburg,203712,99689,104023,kreis,Schleswig-Holstein +01054,Nordfriesland,169043,82669,86374,kreis,Schleswig-Holstein +01055,Ostholstein,203606,97822,105784,kreis,Schleswig-Holstein +01056,Pinneberg,322130,157663,164467,kreis,Schleswig-Holstein +01057,Plön,131266,63357,67909,kreis,Schleswig-Holstein +01058,Rendsburg-Eckernförde,278979,137154,141825,kreis,Schleswig-Holstein +01059,Schleswig-Flensburg,206038,101614,104424,kreis,Schleswig-Holstein +01060,Segeberg,284988,140654,144334,kreis,Schleswig-Holstein +01061,Steinburg,132419,65268,67151,kreis,Schleswig-Holstein +01062,Stormarn,247973,120816,127157,kreis,Schleswig-Holstein +02,Hamburg,1892122,925616,966506,bundesland,Hamburg +03,Niedersachsen,8140242,4009822,4130420,bundesland,Niedersachsen +031,Braunschweig,1610865,796058,814807,statistischeregion,Niedersachsen +03101,Braunschweig,251804,124770,127034,kreis,Niedersachsen +03102,Salzgitter,104548,51829,52719,kreis,Niedersachsen +03103,Wolfsburg,125961,62441,63520,kreis,Niedersachsen +03151,Gifhorn,180232,89675,90557,kreis,Niedersachsen +03153,Goslar,134672,66690,67982,kreis,Niedersachsen +03154,Helmstedt,92470,45648,46822,kreis,Niedersachsen +03155,Northeim,133258,65576,67682,kreis,Niedersachsen +03157,Peine,138931,68750,70181,kreis,Niedersachsen +03158,Wolfenbüttel,120531,59652,60879,kreis,Niedersachsen +03159,Göttingen,328458,161027,167431,kreis,Niedersachsen +032,Hannover,2180058,1067013,1113045,statistischeregion,Niedersachsen +03241,RegionHannover,1173891,573513,600378,kreis,Niedersachsen +03241001,Hannover,545045,266093,278952,landeshauptstadt,Niedersachsen +03251,Diepholz,222816,110415,112401,kreis,Niedersachsen +03252,Hameln-Pyrmont,150640,72781,77859,kreis,Niedersachsen +03254,Hildesheim,278371,135757,142614,kreis,Niedersachsen +03255,Holzminden,70911,35112,35799,kreis,Niedersachsen +03256,Nienburg(Weser),123469,61060,62409,kreis,Niedersachsen +03257,Schaumburg,159960,78375,81585,kreis,Niedersachsen +033,Lüneburg,1757157,864122,893035,statistischeregion,Niedersachsen +03351,Celle,181994,89138,92856,kreis,Niedersachsen +03352,Cuxhaven,201413,98150,103263,kreis,Niedersachsen +03353,Harburg,261890,128854,133036,kreis,Niedersachsen +03354,Lüchow-Dannenberg,49178,23981,25197,kreis,Niedersachsen +03355,Lüneburg,187552,91180,96372,kreis,Niedersachsen +03356,Osterholz,116551,56813,59738,kreis,Niedersachsen +03357,Rotenburg(Wümme),167604,83960,83644,kreis,Niedersachsen +03358,Heidekreis,145394,72697,72697,kreis,Niedersachsen +03359,Stade,210306,104302,106004,kreis,Niedersachsen +03360,Uelzen,94362,45906,48456,kreis,Niedersachsen +03361,Verden,140913,69141,71772,kreis,Niedersachsen +034,Weser-Ems,2592162,1282629,1309533,statistischeregion,Niedersachsen +03401,Delmenhorst,78385,38557,39828,kreis,Niedersachsen +03402,Emden,50535,25071,25464,kreis,Niedersachsen +03403,Oldenburg(Oldenburg),172830,82742,90088,kreis,Niedersachsen +03404,Osnabrück,167366,80755,86611,kreis,Niedersachsen +03405,Wilhelmshaven,76089,37268,38821,kreis,Niedersachsen +03451,Ammerland,128253,62498,65755,kreis,Niedersachsen +03452,Aurich,192072,94234,97838,kreis,Niedersachsen +03453,Cloppenburg,177701,89720,87981,kreis,Niedersachsen +03454,Emsland,338052,171160,166892,kreis,Niedersachsen +03455,Friesland,100277,48749,51528,kreis,Niedersachsen +03456,GrafschaftBentheim,141269,70508,70761,kreis,Niedersachsen +03457,Leer,174348,86640,87708,kreis,Niedersachsen +03458,Oldenburg,133913,66240,67673,kreis,Niedersachsen +03459,Osnabrück,366221,181603,184618,kreis,Niedersachsen +03460,Vechta,146924,73728,73196,kreis,Niedersachsen +03461,Wesermarsch,89568,44652,44916,kreis,Niedersachsen +03462,Wittmund,58359,28504,29855,kreis,Niedersachsen +04,Bremen,684864,338233,346631,bundesland,Bremen +04011,Bremen,569396,280842,288554,kreis,Bremen +04012,Bremerhaven,115468,57391,58077,kreis,Bremen +05,Nordrhein-Westfalen,18139116,8890200,9248916,bundesland,Nordrhein-Westfalen +051,Düsseldorf,5261157,2565963,2695194,regierungsbezirk,Nordrhein-Westfalen +05111,Düsseldorf,629047,303510,325537,kreis,Nordrhein-Westfalen +05112,Duisburg,502211,247892,254319,kreis,Nordrhein-Westfalen +05113,Essen,584580,284152,300428,kreis,Nordrhein-Westfalen +05114,Krefeld,228426,111189,117237,kreis,Nordrhein-Westfalen +05116,Mönchengladbach,268465,132961,135504,kreis,Nordrhein-Westfalen +05117,MülheimanderRuhr,172404,83069,89335,kreis,Nordrhein-Westfalen +05119,Oberhausen,210824,102910,107914,kreis,Nordrhein-Westfalen +05120,Remscheid,112613,55709,56904,kreis,Nordrhein-Westfalen +05122,Solingen,160643,78038,82605,kreis,Nordrhein-Westfalen +05124,Wuppertal,358876,175788,183088,kreis,Nordrhein-Westfalen +05154,Kleve,319290,158966,160324,kreis,Nordrhein-Westfalen +05158,Mettmann,489794,236563,253231,kreis,Nordrhein-Westfalen +05162,Rhein-KreisNeuss,457264,221712,235552,kreis,Nordrhein-Westfalen +05166,Viersen,300882,146635,154247,kreis,Nordrhein-Westfalen +05170,Wesel,465838,226869,238969,kreis,Nordrhein-Westfalen +053,Köln,4527594,2216694,2310900,regierungsbezirk,Nordrhein-Westfalen +05314,Bonn,336465,160769,175696,kreis,Nordrhein-Westfalen +05315,Köln,1084831,526588,558243,kreis,Nordrhein-Westfalen +05316,Leverkusen,165748,80681,85067,kreis,Nordrhein-Westfalen +05334,StädteregionAachen,562559,283670,278889,kreis,Nordrhein-Westfalen +05334002,Aachen,252136,131493,120643,kreis,Nordrhein-Westfalen +05358,Düren,270833,134058,136775,kreis,Nordrhein-Westfalen +05362,Rhein-Erft-Kreis,478126,232974,245152,kreis,Nordrhein-Westfalen +05366,Euskirchen,197247,97449,99798,kreis,Nordrhein-Westfalen +05370,Heinsberg,261833,129489,132344,kreis,Nordrhein-Westfalen +05374,OberbergischerKreis,275404,135188,140216,kreis,Nordrhein-Westfalen +05378,Rheinisch-BergischerKreis,286213,138313,147900,kreis,Nordrhein-Westfalen +05382,Rhein-Sieg-Kreis,608335,297515,310820,kreis,Nordrhein-Westfalen +055,Münster,2664280,1309671,1354609,regierungsbezirk,Nordrhein-Westfalen +05512,Bottrop,118113,57364,60749,kreis,Nordrhein-Westfalen +05513,Gelsenkirchen,263000,130545,132455,kreis,Nordrhein-Westfalen +05515,Münster,320946,153935,167011,kreis,Nordrhein-Westfalen +05554,Borken,379070,189377,189693,kreis,Nordrhein-Westfalen +05558,Coesfeld,224692,110765,113927,kreis,Nordrhein-Westfalen +05562,Recklinghausen,619732,301126,318606,kreis,Nordrhein-Westfalen +05566,Steinfurt,456464,227186,229278,kreis,Nordrhein-Westfalen +05570,Warendorf,282263,139373,142890,kreis,Nordrhein-Westfalen +057,Detmold,2085331,1028145,1057186,regierungsbezirk,Nordrhein-Westfalen +05711,Bielefeld,338332,163149,175183,kreis,Nordrhein-Westfalen +05754,Gütersloh,371309,184955,186354,kreis,Nordrhein-Westfalen +05758,Herford,253551,124664,128887,kreis,Nordrhein-Westfalen +05762,Höxter,141819,70597,71222,kreis,Nordrhein-Westfalen +05766,Lippe,350588,171767,178821,kreis,Nordrhein-Westfalen +05770,Minden-Lübbecke,315974,156058,159916,kreis,Nordrhein-Westfalen +05774,Paderborn,313758,156955,156803,kreis,Nordrhein-Westfalen +059,Arnsberg,3600754,1769727,1831027,regierungsbezirk,Nordrhein-Westfalen +05911,Bochum,365742,178377,187365,kreis,Nordrhein-Westfalen +05913,Dortmund,593317,290847,302470,kreis,Nordrhein-Westfalen +05914,Hagen,189783,92810,96973,kreis,Nordrhein-Westfalen +05915,Hamm,180849,89104,91745,kreis,Nordrhein-Westfalen +05916,Herne,157368,77053,80315,kreis,Nordrhein-Westfalen +05954,Ennepe-Ruhr-Kreis,325193,157717,167476,kreis,Nordrhein-Westfalen +05958,Hochsauerlandkreis,261647,130454,131193,kreis,Nordrhein-Westfalen +05962,MärkischerKreis,410346,201533,208813,kreis,Nordrhein-Westfalen +05966,Olpe,134439,67321,67118,kreis,Nordrhein-Westfalen +05970,Siegen-Wittgenstein,277136,137437,139699,kreis,Nordrhein-Westfalen +05974,Soest,306068,152175,153893,kreis,Nordrhein-Westfalen +05978,Unna,398866,194899,203967,kreis,Nordrhein-Westfalen +06,Hessen,6391360,3151158,3240202,bundesland,Hessen +064,Darmstadt,4088107,2013342,2074765,regierungsbezirk,Hessen +06411,Darmstadt,162243,82530,79713,kreis,Hessen +06412,FrankfurtamMain,773068,380566,392502,kreis,Hessen +06413,OffenbachamMain,134170,66650,67520,kreis,Hessen +06414,Wiesbaden,283083,135153,147930,kreis,Hessen +06431,Bergstraße,275205,135926,139279,kreis,Hessen +06432,Darmstadt-Dieburg,300658,148978,151680,kreis,Hessen +06433,Groß-Gerau,280308,140349,139959,kreis,Hessen +06434,Hochtaunuskreis,239488,115782,123706,kreis,Hessen +06435,Main-Kinzig-Kreis,430838,212330,218508,kreis,Hessen +06436,Main-Taunus-Kreis,242420,118745,123675,kreis,Hessen +06437,Odenwaldkreis,97577,48156,49421,kreis,Hessen +06438,Offenbach,362137,178293,183844,kreis,Hessen +06439,Rheingau-Taunus-Kreis,189614,92814,96800,kreis,Hessen +06440,Wetteraukreis,317298,157070,160228,kreis,Hessen +065,Gießen,1067354,525963,541391,regierungsbezirk,Hessen +06531,Gießen,278664,136879,141785,kreis,Hessen +06532,Lahn-Dill-Kreis,257289,126692,130597,kreis,Hessen +06533,Limburg-Weilburg,174884,86675,88209,kreis,Hessen +06534,Marburg-Biedenkopf,249684,122463,127221,kreis,Hessen +06535,Vogelsbergkreis,106833,53254,53579,kreis,Hessen +066,Kassel,1235899,611853,624046,regierungsbezirk,Hessen +06611,Kassel,204202,99986,104216,kreis,Hessen +06631,Fulda,227456,113060,114396,kreis,Hessen +06632,Hersfeld-Rotenburg,121566,60827,60739,kreis,Hessen +06633,Kassel,240718,117984,122734,kreis,Hessen +06634,Schwalm-Eder-Kreis,182595,91370,91225,kreis,Hessen +06635,Waldeck-Frankenberg,159154,79226,79928,kreis,Hessen +06636,Werra-Meißner-Kreis,100208,49400,50808,kreis,Hessen +07,Rheinland-Pfalz,4159150,2054254,2104896,bundesland,Rheinland-Pfalz +071,Koblenz,1522508,751360,771148,statistischeregion,Rheinland-Pfalz +07111,Koblenz,115268,56506,58762,kreis,Rheinland-Pfalz +07131,Ahrweiler,128161,63413,64748,kreis,Rheinland-Pfalz +07132,Altenkirchen(Westerwald),131467,64960,66507,kreis,Rheinland-Pfalz +07133,BadKreuznach,161307,78730,82577,kreis,Rheinland-Pfalz +07134,Birkenfeld,81760,40508,41252,kreis,Rheinland-Pfalz +07135,Cochem-Zell,62666,31329,31337,kreis,Rheinland-Pfalz +07137,Mayen-Koblenz,218210,107696,110514,kreis,Rheinland-Pfalz +07138,Neuwied,187440,92274,95166,kreis,Rheinland-Pfalz +07140,Rhein-Hunsrück-Kreis,105566,52384,53182,kreis,Rheinland-Pfalz +07141,Rhein-Lahn-Kreis,124381,61390,62991,kreis,Rheinland-Pfalz +07143,Westerwaldkreis,206282,102170,104112,kreis,Rheinland-Pfalz +072,Trier,546565,272767,273798,statistischeregion,Rheinland-Pfalz +07211,Trier,112195,55489,56706,kreis,Rheinland-Pfalz +07231,Bernkastel-Wittlich,115099,57453,57646,kreis,Rheinland-Pfalz +07232,EifelkreisBitburg-Prüm,103642,52202,51440,kreis,Rheinland-Pfalz +07233,Vulkaneifel,61769,30928,30841,kreis,Rheinland-Pfalz +07235,Trier-Saarburg,153860,76695,77165,kreis,Rheinland-Pfalz +073,Rheinhessen-Pfalz,2090077,1030127,1059950,statistischeregion,Rheinland-Pfalz +07311,Frankenthal(Pfalz),49051,23923,25128,kreis,Rheinland-Pfalz +07312,Kaiserslautern,101228,50948,50280,kreis,Rheinland-Pfalz +07313,LandauinderPfalz,47610,22627,24983,kreis,Rheinland-Pfalz +07314,LudwigshafenamRhein,174265,87539,86726,kreis,Rheinland-Pfalz +07315,Mainz,220552,107358,113194,kreis,Rheinland-Pfalz +07316,NeustadtanderWeinstraße,53981,26306,27675,kreis,Rheinland-Pfalz +07317,Pirmasens,40682,19921,20761,kreis,Rheinland-Pfalz +07318,Speyer,51368,25130,26238,kreis,Rheinland-Pfalz +07319,Worms,84646,41957,42689,kreis,Rheinland-Pfalz +07320,Zweibrücken,34534,17075,17459,kreis,Rheinland-Pfalz +07331,Alzey-Worms,132536,65697,66839,kreis,Rheinland-Pfalz +07332,BadDürkheim,134546,65716,68830,kreis,Rheinland-Pfalz +07333,Donnersbergkreis,76208,37684,38524,kreis,Rheinland-Pfalz +07334,Germersheim,130793,64990,65803,kreis,Rheinland-Pfalz +07335,Kaiserslautern,108216,53113,55103,kreis,Rheinland-Pfalz +07336,Kusel,71462,35694,35768,kreis,Rheinland-Pfalz +07337,SüdlicheWeinstraße,112631,55379,57252,kreis,Rheinland-Pfalz +07338,Rhein-Pfalz-Kreis,155921,76581,79340,kreis,Rheinland-Pfalz +07339,Mainz-Bingen,214948,105745,109203,kreis,Rheinland-Pfalz +07340,Südwestpfalz,94899,46744,48155,kreis,Rheinland-Pfalz +08,Baden-Württemberg,11280257,5595424,5684833,bundesland,Baden-Württemberg +081,Stuttgart,4205849,2093955,2111894,regierungsbezirk,Baden-Württemberg +08111,Stuttgart,632865,315634,317231,kreis,Baden-Württemberg +08115,Böblingen,398528,197762,200766,kreis,Baden-Württemberg +08116,Esslingen,540226,269180,271046,kreis,Baden-Württemberg +08117,Göppingen,261857,130139,131718,kreis,Baden-Württemberg +08118,Ludwigsburg,551051,272828,278223,kreis,Baden-Württemberg +08119,Rems-Murr-Kreis,432397,213396,219001,kreis,Baden-Württemberg +08121,Heilbronn,128334,64610,63724,kreis,Baden-Württemberg +08125,Heilbronn,353283,177094,176189,kreis,Baden-Württemberg +08126,Hohenlohekreis,115063,57914,57149,kreis,Baden-Württemberg +08127,SchwäbischHall,202834,101772,101062,kreis,Baden-Württemberg +08128,Main-Tauber-Kreis,134745,67267,67478,kreis,Baden-Württemberg +08135,Heidenheim,135035,67292,67743,kreis,Baden-Württemberg +08136,Ostalbkreis,319631,159067,160564,kreis,Baden-Württemberg +082,Karlsruhe,2848400,1413296,1435104,regierungsbezirk,Baden-Württemberg +08211,Baden-Baden,57025,27240,29785,kreis,Baden-Württemberg +08212,Karlsruhe,308707,157553,151154,kreis,Baden-Württemberg +08215,Karlsruhe,454613,226144,228469,kreis,Baden-Württemberg +08216,Rastatt,234981,116683,118298,kreis,Baden-Württemberg +08221,Heidelberg,162273,77561,84712,kreis,Baden-Württemberg +08222,Mannheim,315554,157130,158424,kreis,Baden-Württemberg +08225,Neckar-Odenwald-Kreis,145493,72949,72544,kreis,Baden-Württemberg +08226,Rhein-Neckar-Kreis,555352,272531,282821,kreis,Baden-Württemberg +08231,Pforzheim,127849,62926,64923,kreis,Baden-Württemberg +08235,Calw,162853,81700,81153,kreis,Baden-Württemberg +08236,Enzkreis,202536,100318,102218,kreis,Baden-Württemberg +08237,Freudenstadt,121164,60561,60603,kreis,Baden-Württemberg +083,Freiburg,2322689,1143714,1178975,regierungsbezirk,Baden-Württemberg +08311,FreiburgimBreisgau,236140,112382,123758,kreis,Baden-Württemberg +08315,Breisgau-Hochschwarzwald,269948,132897,137051,kreis,Baden-Württemberg +08316,Emmendingen,170996,84495,86501,kreis,Baden-Württemberg +08317,Ortenaukreis,441885,220341,221544,kreis,Baden-Württemberg +08325,Rottweil,142593,71335,71258,kreis,Baden-Württemberg +08326,Schwarzwald-Baar-Kreis,217181,107434,109747,kreis,Baden-Württemberg +08327,Tuttlingen,144891,72930,71961,kreis,Baden-Württemberg +08335,Konstanz,292568,141939,150629,kreis,Baden-Württemberg +08336,Lörrach,233027,114220,118807,kreis,Baden-Württemberg +08337,Waldshut,173460,85741,87719,kreis,Baden-Württemberg +084,Tübingen,1903319,944459,958860,regierungsbezirk,Baden-Württemberg +08415,Reutlingen,291696,144375,147321,kreis,Baden-Württemberg +08416,Tübingen,232803,113022,119781,kreis,Baden-Württemberg +08417,Zollernalbkreis,193235,95712,97523,kreis,Baden-Württemberg +08421,Ulm,128928,63803,65125,kreis,Baden-Württemberg +08425,Alb-Donau-Kreis,202476,101989,100487,kreis,Baden-Württemberg +08426,Biberach,206513,104027,102486,kreis,Baden-Württemberg +08435,Bodenseekreis,222712,109351,113361,kreis,Baden-Württemberg +08436,Ravensburg,290911,144799,146112,kreis,Baden-Württemberg +08437,Sigmaringen,134045,67381,66664,kreis,Baden-Württemberg +09,Bayern,13369393,6620203,6749190,bundesland,Bayern +091,Oberbayern,4801769,2370431,2431338,regierungsbezirk,Bayern +09161,Ingolstadt,141029,71308,69721,kreis,Bayern +09162,München,1512491,736806,775685,kreis,Bayern +09163,Rosenheim,64403,31922,32481,kreis,Bayern +09171,Altötting,113798,56238,57560,kreis,Bayern +09172,BerchtesgadenerLand,107667,52850,54817,kreis,Bayern +09173,BadTölz-Wolfratshausen,129511,63758,65753,kreis,Bayern +09174,Dachau,156982,78276,78706,kreis,Bayern +09175,Ebersberg,146830,73169,73661,kreis,Bayern +09176,Eichstätt,135591,68634,66957,kreis,Bayern +09177,Erding,141680,71117,70563,kreis,Bayern +09178,Freising,184433,94031,90402,kreis,Bayern +09179,Fürstenfeldbruck,221612,108617,112995,kreis,Bayern +09180,Garmisch-Partenkirchen,88840,42925,45915,kreis,Bayern +09181,LandsbergamLech,123032,61199,61833,kreis,Bayern +09182,Miesbach,101346,49603,51743,kreis,Bayern +09183,Mühldorfa.Inn,119878,60544,59334,kreis,Bayern +09184,München,355890,176060,179830,kreis,Bayern +09185,Neuburg-Schrobenhausen,99957,50240,49717,kreis,Bayern +09186,Pfaffenhofena.d.Ilm,132082,67028,65054,kreis,Bayern +09187,Rosenheim,266945,131878,135067,kreis,Bayern +09188,Starnberg,138785,66902,71883,kreis,Bayern +09189,Traunstein,180779,89067,91712,kreis,Bayern +09190,Weilheim-Schongau,138208,68259,69949,kreis,Bayern +092,Niederbayern,1273955,637936,636019,regierungsbezirk,Bayern +09261,Landshut,75457,36833,38624,kreis,Bayern +09262,Passau,53907,26167,27740,kreis,Bayern +09263,Straubing,49164,24797,24367,kreis,Bayern +09271,Deggendorf,122121,61353,60768,kreis,Bayern +09272,Freyung-Grafenau,79286,39459,39827,kreis,Bayern +09273,Kelheim,125701,63520,62181,kreis,Bayern +09274,Landshut,164773,83050,81723,kreis,Bayern +09275,Passau,196963,97778,99185,kreis,Bayern +09276,Regen,78035,38968,39067,kreis,Bayern +09277,Rottal-Inn,124436,62503,61933,kreis,Bayern +09278,Straubing-Bogen,103806,52035,51771,kreis,Bayern +09279,Dingolfing-Landau,100306,51473,48833,kreis,Bayern +093,Oberpfalz,1133741,564751,568990,regierungsbezirk,Bayern +09361,Amberg,42534,20920,21614,kreis,Bayern +09362,Regensburg,157443,76690,80753,kreis,Bayern +09363,Weideni.d.OPf.,43052,20833,22219,kreis,Bayern +09371,Amberg-Sulzbach,104436,52328,52108,kreis,Bayern +09372,Cham,130193,65441,64752,kreis,Bayern +09373,Neumarkti.d.OPf.,138086,69843,68243,kreis,Bayern +09374,Neustadta.d.Waldnaab,95954,47697,48257,kreis,Bayern +09375,Regensburg,198160,99038,99122,kreis,Bayern +09376,Schwandorf,151711,76171,75540,kreis,Bayern +09377,Tirschenreuth,72172,35790,36382,kreis,Bayern +094,Oberfranken,1073783,529160,544623,regierungsbezirk,Bayern +09461,Bamberg,79935,39117,40818,kreis,Bayern +09462,Bayreuth,74506,36399,38107,kreis,Bayern +09463,Coburg,41842,20328,21514,kreis,Bayern +09464,Hof,46656,22663,23993,kreis,Bayern +09471,Bamberg,149122,74606,74516,kreis,Bayern +09472,Bayreuth,104702,51923,52779,kreis,Bayern +09473,Coburg,87103,43107,43996,kreis,Bayern +09474,Forchheim,117948,58401,59547,kreis,Bayern +09475,Hof,94589,46307,48282,kreis,Bayern +09476,Kronach,66393,32798,33595,kreis,Bayern +09477,Kulmbach,71653,35199,36454,kreis,Bayern +09478,Lichtenfels,67328,33189,34139,kreis,Bayern +09479,Wunsiedeli.Fichtelgebirge,72006,35123,36883,kreis,Bayern +095,Mittelfranken,1805791,889544,916247,regierungsbezirk,Bayern +09561,Ansbach,42221,20194,22027,kreis,Bayern +09562,Erlangen,116562,57940,58622,kreis,Bayern +09563,Fürth,131433,64348,67085,kreis,Bayern +09564,Nürnberg,523026,255250,267776,kreis,Bayern +09565,Schwabach,41227,20110,21117,kreis,Bayern +09571,Ansbach,188623,94550,94073,kreis,Bayern +09572,Erlangen-Höchstadt,140994,69977,71017,kreis,Bayern +09573,Fürth,119923,58382,61541,kreis,Bayern +09574,NürnbergerLand,172665,84864,87801,kreis,Bayern +09575,Neustadta.d.Aisch-BadWindsheim,103303,51799,51504,kreis,Bayern +09576,Roth,128694,63723,64971,kreis,Bayern +09577,Weißenburg-Gunzenhausen,97120,48407,48713,kreis,Bayern +096,Unterfranken,1334376,660476,673900,regierungsbezirk,Bayern +09661,Aschaffenburg,72444,35160,37284,kreis,Bayern +09662,Schweinfurt,54675,27041,27634,kreis,Bayern +09663,Würzburg,127810,61008,66802,kreis,Bayern +09671,Aschaffenburg,176958,87610,89348,kreis,Bayern +09672,BadKissingen,104567,51477,53090,kreis,Bayern +09673,Rhön-Grabfeld,80341,39954,40387,kreis,Bayern +09674,Haßberge,84984,42626,42358,kreis,Bayern +09675,Kitzingen,93247,46806,46441,kreis,Bayern +09676,Miltenberg,129835,64503,65332,kreis,Bayern +09677,Main-Spessart,127132,63281,63851,kreis,Bayern +09678,Schweinfurt,117044,59107,57937,kreis,Bayern +09679,Würzburg,165339,81903,83436,kreis,Bayern +097,Schwaben,1945978,967905,978073,regierungsbezirk,Bayern +09761,Augsburg,301033,148355,152678,kreis,Bayern +09762,Kaufbeuren,45792,22583,23209,kreis,Bayern +09763,Kempten(Allgäu),70056,34669,35387,kreis,Bayern +09764,Memmingen,45857,22647,23210,kreis,Bayern +09771,Aichach-Friedberg,137334,68380,68954,kreis,Bayern +09772,Augsburg,261342,129390,131952,kreis,Bayern +09773,Dillingena.d.Donau,99109,49626,49483,kreis,Bayern +09774,Günzburg,130112,65595,64517,kreis,Bayern +09775,Neu-Ulm,180425,89639,90786,kreis,Bayern +09776,Lindau(Bodensee),83393,41121,42272,kreis,Bayern +09777,Ostallgäu,145378,72362,73016,kreis,Bayern +09778,Unterallgäu,150068,75833,74235,kreis,Bayern +09779,Donau-Ries,137137,69586,67551,kreis,Bayern +09780,Oberallgäu,158942,78119,80823,kreis,Bayern +10,Saarland,992666,487101,505565,bundesland,Saarland +10041,Saarbrücken,330848,162630,168218,regionalverband,Saarland +10041100,Saarbrücken,181959,90445,91514,landeshauptstadt,Saarland +10042,Merzig-Wadern,104425,51552,52873,kreis,Saarland +10043,Neunkirchen,132283,65064,67219,kreis,Saarland +10044,Saarlouis,195749,95910,99839,kreis,Saarland +10045,Saarpfalz-Kreis,142419,69192,73227,kreis,Saarland +10046,St.Wendel,86942,42753,44189,kreis,Saarland +11,Berlin,3755251,1843196,1912055,bundesland,Berlin +12,Brandenburg,2573135,1265151,1307984,bundesland,Brandenburg +12051,BrandenburganderHavel,73609,36106,37503,kreis,Brandenburg +12052,Cottbus,99515,48535,50980,kreis,Brandenburg +12053,Frankfurt(Oder),58230,28223,30007,kreis,Brandenburg +12054,Potsdam,185750,89442,96308,kreis,Brandenburg +12060,Barnim,191849,94508,97341,kreis,Brandenburg +12061,Dahme-Spreewald,178967,88512,90455,kreis,Brandenburg +12062,Elbe-Elster,100902,50011,50891,kreis,Brandenburg +12063,Havelland,169334,83473,85861,kreis,Brandenburg +12064,Märkisch-Oderland,200292,99079,101213,kreis,Brandenburg +12065,Oberhavel,218551,107236,111315,kreis,Brandenburg +12066,Oberspreewald-Lausitz,108263,53007,55256,kreis,Brandenburg +12067,Oder-Spree,182401,89338,93063,kreis,Brandenburg +12068,Ostprignitz-Ruppin,99871,49583,50288,kreis,Brandenburg +12069,Potsdam-Mittelmark,222570,109781,112789,kreis,Brandenburg +12070,Prignitz,76045,37625,38420,kreis,Brandenburg +12071,Spree-Neiße,112493,55072,57421,kreis,Brandenburg +12072,Teltow-Fläming,176648,88122,88526,kreis,Brandenburg +12073,Uckermark,117845,57498,60347,kreis,Brandenburg +13,Mecklenburg-Vorpommern,1628378,799695,828683,bundesland,Mecklenburg-Vorpommern +13003,Rostock,209920,102800,107120,kreis,Mecklenburg-Vorpommern +13004,Schwerin,98596,47203,51393,kreis,Mecklenburg-Vorpommern +13071,MecklenburgischeSeenplatte,259568,127218,132350,kreis,Mecklenburg-Vorpommern +13072,LandkreisRostock,220807,109406,111401,kreis,Mecklenburg-Vorpommern +13073,Vorpommern-Rügen,227683,111156,116527,kreis,Mecklenburg-Vorpommern +13074,Nordwestmecklenburg,160288,79473,80815,kreis,Mecklenburg-Vorpommern +13075,Vorpommern-Greifswald,237355,115725,121630,kreis,Mecklenburg-Vorpommern +13076,Ludwigslust-Parchim,214161,106714,107447,kreis,Mecklenburg-Vorpommern +14,Sachsen,4086152,2010537,2075615,bundesland,Sachsen +145,Chemnitz,1411556,693193,718363,statistischeregion,Sachsen +14511,Chemnitz,248563,122678,125885,kreis,Sachsen +14521,Erzgebirgskreis,328850,160991,167859,kreis,Sachsen +14522,Mittelsachsen,300639,149223,151416,kreis,Sachsen +14523,Vogtlandkreis,222666,108488,114178,kreis,Sachsen +14524,Zwickau,310838,151813,159025,kreis,Sachsen +146,Dresden,1598250,788007,810243,statistischeregion,Sachsen +14612,Dresden,563311,279338,283973,kreis,Sachsen +14625,Bautzen,297711,146982,150729,kreis,Sachsen +14626,Görlitz,249681,122032,127649,kreis,Sachsen +14627,Meißen,241343,118391,122952,kreis,Sachsen +14628,SächsischeSchweiz-Osterzgebirge,246204,121264,124940,kreis,Sachsen +147,Leipzig,1076346,529337,547009,statistischeregion,Sachsen +14713,Leipzig,616093,302741,313352,kreis,Sachsen +14729,Leipzig,260429,127570,132859,kreis,Sachsen +14730,Nordsachsen,199824,99026,100798,kreis,Sachsen +15,Sachsen-Anhalt,2186643,1073711,1112932,bundesland,Sachsen-Anhalt +15001,Dessau-Roßlau,79655,38509,41146,kreis,Sachsen-Anhalt +15002,Halle(Saale),242083,116835,125248,kreis,Sachsen-Anhalt +15003,Magdeburg,239364,117729,121635,kreis,Sachsen-Anhalt +15081,AltmarkkreisSalzwedel,82457,41042,41415,kreis,Sachsen-Anhalt +15082,Anhalt-Bitterfeld,157235,76971,80264,kreis,Sachsen-Anhalt +15083,Börde,171393,85383,86010,kreis,Sachsen-Anhalt +15084,Burgenlandkreis,177212,87200,90012,kreis,Sachsen-Anhalt +15085,Harz,210381,103454,106927,kreis,Sachsen-Anhalt +15086,JerichowerLand,90256,44854,45402,kreis,Sachsen-Anhalt +15087,Mansfeld-Südharz,132034,64916,67118,kreis,Sachsen-Anhalt +15088,Saalekreis,183974,90866,93108,kreis,Sachsen-Anhalt +15089,Salzlandkreis,186420,90887,95533,kreis,Sachsen-Anhalt +15090,Stendal,110291,54172,56119,kreis,Sachsen-Anhalt +15091,Wittenberg,123888,60893,62995,kreis,Sachsen-Anhalt +16,Thüringen,2126846,1051482,1075364,bundesland,Thüringen +16051,Erfurt,214969,104205,110764,kreis,Thüringen +16052,Gera,93634,45174,48460,kreis,Thüringen +16053,Jena,111191,55301,55890,kreis,Thüringen +16054,Suhl,37009,18339,18670,kreis,Thüringen +16055,Weimar,65620,31624,33996,kreis,Thüringen +16061,Eichsfeld,100091,50150,49941,kreis,Thüringen +16062,Nordhausen,82444,40782,41662,kreis,Thüringen +16063,Wartburgkreis,159539,79425,80114,kreis,Thüringen +16064,Unstrut-Hainich-Kreis,102256,50688,51568,kreis,Thüringen +16065,Kyffhäuserkreis,73690,36612,37078,kreis,Thüringen +16066,Schmalkalden-Meiningen,123939,61977,61962,kreis,Thüringen +16067,Gotha,134941,66997,67944,kreis,Thüringen +16068,Sömmerda,69646,34846,34800,kreis,Thüringen +16069,Hildburghausen,61926,31002,30924,kreis,Thüringen +16070,Ilm-Kreis,106776,53798,52978,kreis,Thüringen +16071,WeimarerLand,83179,41156,42023,kreis,Thüringen +16072,Sonneberg,56922,28093,28829,kreis,Thüringen +16073,Saalfeld-Rudolstadt,101494,49926,51568,kreis,Thüringen +16074,Saale-Holzland-Kreis,83234,41328,41906,kreis,Thüringen +16075,Saale-Orla-Kreis,79178,39306,39872,kreis,Thüringen +16076,Greiz,96381,47487,48894,kreis,Thüringen +16077,AltenburgerLand,88787,43266,45521,kreis,Thüringen diff --git a/2024_Datenbanksysteme/data/preprocessed/cleaned_hochschulen.csv b/2024_Datenbanksysteme/data/preprocessed/cleaned_hochschulen.csv new file mode 100644 index 0000000..1f85393 --- /dev/null +++ b/2024_Datenbanksysteme/data/preprocessed/cleaned_hochschulen.csv @@ -0,0 +1,412 @@ +hochschulkurzname,hochschulname,hochschultyp,traegerschaft,bundesland,anzahl_studierende,gruendungsjahr,promotionsrecht,habilitationsrecht,strasse,postleitzahl_hausanschrift,ort_hausanschrift,home_page,latitude,longitude +Aachen FH,Fachhochschule Aachen,Fachhochschulen / HAW,öffentlich-rechtlich,Nordrhein-Westfalen,14086,1971,False,False,Bayernallee 11,52066,Aachen,http://www.fh-aachen.de,50.7585018,6.101767428883322 +Aachen TH,Rheinisch-Westfälische Technische Hochschule Aachen,Universitäten,öffentlich-rechtlich,Nordrhein-Westfalen,45527,1870,True,True,Templergraben 55,52062,Aachen,https://www.rwth-aachen.de,50.7761739,6.085848254770982 +Aalen H,Hochschule Aalen - Technik und Wirtschaft,Fachhochschulen / HAW,öffentlich-rechtlich,Baden-Württemberg,4559,1962,False,False,Beethovenstraße 1,73430,Aalen,http://www.hs-aalen.de,48.8425279,10.081968660543538 +Albstadt-Sigmaringen H,Hochschule Albstadt-Sigmaringen,Fachhochschulen / HAW,öffentlich-rechtlich,Baden-Württemberg,2666,1971,False,False,Anton-Günther-Straße 51,72488,Sigmaringen,www.hs-albsig.de,48.0910731,9.182825310992532 +Alfter HfKuG,Alanus Hochschule für Kunst und Gesellschaft,Künstlerische Hochschulen,"privat, staatlich anerkannt",Nordrhein-Westfalen,1564,1973,True,False,Villestraße 3,53347,Alfter,https://www.alanus.edu/de/home,50.7089659,6.9958547350213065 +Amberg-Weiden OTH,Ostbayerische Technische Hochschule Amberg-Weiden,Fachhochschulen / HAW,öffentlich-rechtlich,Bayern,4077,1994,True,False,Kaiser-Wilhelm-Ring 23,92224,Amberg,http://www.oth-aw.de/,49.454366199999996,11.847402115482414 +Anhalt H,Hochschule Anhalt - Anhalt University of Applied Sciences,Fachhochschulen / HAW,öffentlich-rechtlich,Sachsen-Anhalt,7067,1991,True,False,Bernburger Straße 55,06366,Köthen,http://www.hs-anhalt.de,51.74936555,11.97612494812628 +Ansbach H,Hochschule für angewandte Wissenschaften Ansbach,Fachhochschulen / HAW,öffentlich-rechtlich,Bayern,3898,1996,True,False,Residenzstraße 8,91522,Ansbach,http://www.hs-ansbach.de,49.28887445,10.55976933809508 +Aschaffenburg TH,Technische Hochschule Aschaffenburg,Fachhochschulen / HAW,öffentlich-rechtlich,Bayern,3559,1995,False,False,Würzburger Straße 45,63743,Aschaffenburg,http://www.th-ab.de,49.9470166,9.165951087916003 +Augsburg TH,Technische Hochschule Augsburg,Fachhochschulen / HAW,öffentlich-rechtlich,Bayern,7025,1710,False,False,An der Hochschule 1,86161,Augsburg,https://www.tha.de/,48.34542535,10.92090760196481 +Augsburg U,Universität Augsburg,Universitäten,öffentlich-rechtlich,Bayern,19089,1970,True,True,Universitätsstraße 2,86159,Augsburg,http://www.uni-augsburg.de,48.342991049999995,10.89734064672265 +Baden-Württemberg HRecht (Verw),Hochschule für Rechtspflege Schwetzingen,Verwaltungshochschule,öffentlich-rechtlich,Baden-Württemberg,716,1953,False,False,Karlsruher Straße 2,68723,Schwetzingen,"http://www.hfr-bw.de/pb/,Lde/Startseite",49.37770295,8.583018671580149 +Baden-Württemberg HVerw/Finanzen(Verw),Hochschule für öffentliche Verwaltung und Finanzen Ludwigsburg,Verwaltungshochschule,öffentlich-rechtlich,Baden-Württemberg,2792,1999,False,False,Reuteallee 36,71634,Ludwigsburg,https://www.hs-ludwigsburg.de/,48.91024415,9.174084125820093 +Baden-Württemberg HVerw (Verw),Hochschule für öffentliche Verwaltung Kehl,Verwaltungshochschule,öffentlich-rechtlich,Baden-Württemberg,1421,1971,False,False,Kinzigallee 1,77694,Kehl,https://www.hs-kehl.de/,48.56364565,7.825786876474558 +Bad Homburg accadisFH,accadis Hochschule Bad Homburg,Fachhochschulen / HAW,"privat, staatlich anerkannt",Hessen,448,1980,False,False,SÜDCAMPUS Bad Homburg Am Weidenring 4,61352,Bad Homburg,https://www.accadis.com/contact.aspx,50.2210175,8.66171602333683 +Bad Liebenzell IHL,Internationale Hochschule Liebenzell (IHL),Fachhochschulen / HAW,"privat, staatlich anerkannt",Baden-Württemberg,305,2011,False,False,Heinrich-Coerper-Weg 11,75378,Bad Liebenzell,http://www.ihl.eu,48.777550149999996,8.72211459002866 +Bamberg U,Otto-Friedrich-Universität Bamberg,Universitäten,öffentlich-rechtlich,Bayern,10734,1647,True,True,Kapuzinerstr. 25,96047,Bamberg,http://www.uni-bamberg.de/,49.88869885,10.895634601666622 +Bayreuth HfKiM,Hochschule für evangelische Kirchenmusik der Evangelisch-Lutherischen Kirche in Bayern,Künstlerische Hochschulen,"kirchlich, staatlich anerkannt",Bayern,26,2000,False,False,Wilhelminenstraße 9,95444,Bayreuth,http://www.hfk-bayreuth.de,49.94413155,11.577181363119331 +Bayreuth U,Universität Bayreuth,Universitäten,öffentlich-rechtlich,Bayern,11924,1972,True,True,Universitätsstraße 30,95447,Bayreuth,http://www.uni-bayreuth.de,49.9233443,11.554145933508014 +Berlin Akkon,Akkon-Hochschule,Fachhochschulen / HAW,"privat, staatlich anerkannt",Berlin,1406,2009,False,False,Colditzstraße 34-36,12099,Berlin,http://www.akkon-hochschule.de,52.4647344,13.403292769601151 +Berlin ASH,Alice Salomon Hochschule Berlin,Fachhochschulen / HAW,öffentlich-rechtlich,Berlin,4299,1971,False,False,Alice-Salomon-Platz 5,12627,Berlin,http://www.ash-berlin.eu,52.53713195,13.610444765007331 +Berlin bbw,bbw Hochschule,Fachhochschulen / HAW,"privat, staatlich anerkannt",Berlin,822,2007,False,False,Wagner-Régeny-Straße 21,12489,Berlin,http://www.bbw-hochschule.de,52.43807135,13.543502547747496 +Berlin BC,"Bard College Berlin, A Liberal Arts University",Universitäten,"privat, staatlich anerkannt",Berlin,312,1999,False,False,Platanenstrasse 24,13156,Berlin,http://www.berlin.bard.edu,52.581411599999996,13.399532646180678 +Berlin BHT,Berliner Hochschule für Technik,Fachhochschulen / HAW,öffentlich-rechtlich,Berlin,12296,1971,False,False,Luxemburger Str. 10,13353,Berlin,https://www.bht-berlin.de/,52.5427825,13.350397649628857 +Berlin BIU,Berlin International University of Applied Sciences,Fachhochschulen / HAW,"privat, staatlich anerkannt",Berlin,530,2014,False,False,Salzufer 6,10587,Berlin,http://www.berlin-international.de/,52.51797165,13.318845601385824 +Berlin BSA,Barenboim-Said Akademie,Künstlerische Hochschulen,"privat, staatlich anerkannt",Berlin,77,2016,False,False,Französische Straße 33D,10117,Berlin,www.barenboimsaid.de,52.5175184,13.38776860055452 +Berlin BSP,BSP Business and Law School - Hochschule für Management und Recht,Fachhochschulen / HAW,"privat, staatlich anerkannt",Berlin,1750,2009,False,False,Calandrellistraße 1-9,12247,Berlin,https://www.businessschool-berlin.de/,52.4388914,13.347658711012084 +Berlin CODE,CODE University of Applied Sciences,Fachhochschulen / HAW,"privat, staatlich anerkannt",Berlin,610,2017,False,False,Lohmühlenstr. 65,12435,Berlin,https://code.berlin/de/,52.485216050000005,13.476101227122792 +Berlin DBU,Digital Business University of Applied Sciences,Fachhochschulen / HAW,"privat, staatlich anerkannt",Berlin,282,2018,False,False,Oranienstr. 185,10999,Berlin,https://dbuas.de/,52.497658900000005,13.423101651668746 +Berlin DHGS,DHGS Deutsche Hochschule für Gesundheit und Sport,Fachhochschulen / HAW,"privat, staatlich anerkannt",Berlin,1865,2007,False,False,Franklinstr. 28-29,10587,Berlin,https://dhgs-hochschule.de,52.51797165,13.318845601385824 +Berlin ESCP,ESCP Europe Wirtschaftshochschule Berlin e.V.,Universitäten,"privat, staatlich anerkannt",Berlin,1254,1819,True,False,Heubnerweg 8-10,14059,Berlin,http://www.escp.eu,52.520973850000004,13.288505865714662 +Berlin ESMT,ESMT European School of Management and Technology,Universitäten,"privat, staatlich anerkannt",Berlin,820,2002,True,False,Schlossplatz 1,10178,Berlin,http://www.esmt.org/en/home,52.520297049999996,13.404734960423745 +Berlin EvH,Evangelische Hochschule Berlin,Fachhochschulen / HAW,"kirchlich, staatlich anerkannt",Berlin,1696,1904,False,False,Teltower Damm 118-122,14167,Berlin,http://www.eh-berlin.de,52.42157845,13.27883356116847 +Berlin FHTouro,Touro College Berlin,Fachhochschulen / HAW,"privat, staatlich anerkannt",Berlin,129,2003,False,False,Am Rupenhorn 5,14055,Berlin,http://www.touroberlin.de,52.50009835,13.21706211638391 +Berlin FU,Freie Universität Berlin,Universitäten,öffentlich-rechtlich,Berlin,42090,1948,True,True,Kaiserswerther Str. 16-18,14195,Berlin,http://www.fu-berlin.de,52.4585754,13.284632870198381 +Berlin Hertie,Hertie School,Universitäten,"privat, staatlich anerkannt",Berlin,716,2004,True,False,"Quartier 110, Friedrichstraße 180",10117,Berlin,https://www.hertie-school.org/en/,52.5175184,13.38776860055452 +Berlin HfM,Hochschule für Musik Hanns Eisler Berlin,Künstlerische Hochschulen,öffentlich-rechtlich,Berlin,556,1950,False,False,Charlottenstraße 55,10117,Berlin,http://www.hfm-berlin.de,52.5175184,13.38776860055452 +Berlin HfS,Hochschule für Schauspielkunst Ernst Busch,Künstlerische Hochschulen,öffentlich-rechtlich,Berlin,222,1905,False,False,Zinnowitzer Straße 11,10115,Berlin,http://www.hfs-berlin.de,52.5319539,13.383800929178934 +Berlin HMKW,"HMKW Hochschule für Medien, Kommunikation und Wirtschaft",Fachhochschulen / HAW,"privat, staatlich anerkannt",Berlin,2038,2008,False,False,Ackerstraße 76,13355,Berlin,www.hmkw.de,52.541084049999995,13.389616039699296 +Berlin HSAP,Hochschule für Soziale Arbeit und Pädagogik (HSAP) gemeinnützige Betriebsgesellschaft mbH,Fachhochschulen / HAW,"privat, staatlich anerkannt",Berlin,561,2013,False,False,Alt-Stralau 37-39,10245,Berlin,https://www.hsap.de,52.500398700000005,13.457894344423604 +Berlin HTW,Hochschule für Technik und Wirtschaft Berlin,Fachhochschulen / HAW,öffentlich-rechtlich,Berlin,14523,1994,False,False,Treskowallee 8,10318,Berlin,https://www.htw-berlin.de,52.4830907,13.526339144837998 +Berlin HU,Humboldt-Universität zu Berlin,Universitäten,öffentlich-rechtlich,Berlin,40144,1810,True,True,Unter den Linden 6,10117,Berlin,https://www.hu-berlin.de/de/service/kontakt/,52.5175184,13.38776860055452 +Berlin HWR,Hochschule für Wirtschaft und Recht Berlin,Fachhochschulen / HAW,öffentlich-rechtlich,Berlin,11454,1971,False,False,Badensche Straße 52,10825,Berlin,https://www.hwr-berlin.de,52.4838539,13.340755182967287 +Berlin IB,IB Hochschule für Gesundheit und Soziales,Fachhochschulen / HAW,"privat, staatlich anerkannt",Berlin,512,2006,False,False,Warener Str. 7 c/o BG Klinikum Unfallkrankenhaus Berlin gGmbH,12683,Berlin,https://www.ib-hochschule.de,52.5042429,13.55755287422944 +Berlin IPU,International Psychoanalytic University Berlin,Universitäten,"privat, staatlich anerkannt",Berlin,872,2009,False,False,Stromstr. 3b,10555,Berlin,https://www.ipu-berlin.de,52.519881350000006,13.335536500236055 +Berlin KHS,Katholische Hochschule für Sozialwesen Berlin (KHSB) - Staatlich anerkannte Fachhochschule für Sozialwesen,Fachhochschulen / HAW,"kirchlich, staatlich anerkannt",Berlin,1219,1991,False,False,Köpenicker Allee 39-57,10318,Berlin,http://www.khsb-berlin.de,52.4830907,13.526339144837998 +Berlin MDH,Mediadesign Hochschule für Design und Informatik,Fachhochschulen / HAW,"privat, staatlich anerkannt",Berlin,751,2004,False,False,Franklinstraße 28 - 29,10587,Berlin,http://www.mediadesign.de,52.51797165,13.318845601385824 +Berlin MSB,Medical School Berlin - Hochschule für Gesundheit und Medizin (MSB),Fachhochschulen / HAW,"privat, staatlich anerkannt",Berlin,2840,2012,False,False,Rüdesheimer Str. 50,14197,Berlin,www.medicalschool-berlin.de,52.4731866,13.310298461371033 +Berlin PHB,Psychologische Hochschule Berlin (PHB),Universitäten,"privat, staatlich anerkannt",Berlin,731,2010,False,False,Am Köllnischen Park 2,10179,Berlin,http://www.psychologische-hochschule.de,52.51379,13.415241060706151 +Berlin SRH,SRH Berlin University of Applied Sciences,Fachhochschulen / HAW,"privat, staatlich anerkannt",Berlin,2868,2002,False,False,Ernst-Reuter-Platz 10,10587,Berlin,https://www.srh-berlin.de/,52.51797165,13.318845601385824 +Berlin TU,Technische Universität Berlin,Universitäten,öffentlich-rechtlich,Berlin,35101,1879,True,True,Straße des 17. Juni 135,10623,Berlin,http://www.tu.berlin,52.509442699999994,13.325736129236596 +Berlin UdK,Universität der Künste Berlin,Künstlerische Hochschulen,öffentlich-rechtlich,Berlin,4191,1699,True,True,Einsteinufer 43,10587,Berlin,http://www.udk-berlin.de,52.51797165,13.318845601385824 +Berlin VICTORIA,VICTORIA | Internationale Hochschule,Fachhochschulen / HAW,"privat, staatlich anerkannt",Berlin,586,2011,False,False,Bernburger Straße 24-25,10963,Berlin,https://www.victoria-hochschule.de/,52.5000594,13.38150429114823 +Berlin-Weißensee KHB,weißensee kunsthochschule berlin,Künstlerische Hochschulen,öffentlich-rechtlich,Berlin,823,1946,False,False,Bühringstraße 20,13086,Berlin,http://www.kh-berlin.de,52.55712455,13.448277760058076 +Biberach H,"Hochschule Biberach - Architektur und Bauwesen, Betriebswirtschaft und Biotechnologie",Fachhochschulen / HAW,öffentlich-rechtlich,Baden-Württemberg,2270,1964,False,False,Karlstraße 11,88400,Biberach,http://www.hochschule-biberach.de,48.08873715,9.797462747436814 +Bielefeld FHDiakonie,Fachhochschule der Diakonie - Diaconia - University of Applied Sciences,Fachhochschulen / HAW,"kirchlich, staatlich anerkannt",Nordrhein-Westfalen,754,2006,False,False,Bethelweg 8,33617,Bielefeld,http://www.fh-diakonie.de,52.00732905,8.525444553199758 +Bielefeld FHM,Fachhochschule des Mittelstands (FHM),Fachhochschulen / HAW,"privat, staatlich anerkannt",Nordrhein-Westfalen,5550,2000,False,False,Ravensberger Straße 10 G,33602,Bielefeld,http://www.fh-mittelstand.de/profil,52.022857200000004,8.533584902232988 +Bielefeld H,Hochschule Bielefeld - University of Applied Sciences and Arts (HSBI),Fachhochschulen / HAW,öffentlich-rechtlich,Nordrhein-Westfalen,10538,1971,False,False,Interaktion 1,33619,Bielefeld,https://www.hsbi.de,52.04076675,8.457658234737316 +Bielefeld U,Universität Bielefeld,Universitäten,öffentlich-rechtlich,Nordrhein-Westfalen,23539,1969,True,True,Universitätsstraße 25,33615,Bielefeld,http://www.uni-bielefeld.de/,52.034928750000006,8.50470476944917 +Bingen TH,Technische Hochschule Bingen,Fachhochschulen / HAW,öffentlich-rechtlich,Rheinland-Pfalz,2433,1897,False,False,Berlinstraße 109,55411,Bingen,https://www.th-bingen.de/home/,49.946924800000005,7.926249569908727 +Bochum EBZ,EBZ Business School - University of Applied Sciences,Fachhochschulen / HAW,"privat, staatlich anerkannt",Nordrhein-Westfalen,1114,2008,False,False,Springorumallee 20,44795,Bochum,https://www.ebz-business-school.de/,51.45267355,7.199498929154195 +Bochum H,Hochschule Bochum - University of Applied Sciences,Fachhochschulen / HAW,öffentlich-rechtlich,Nordrhein-Westfalen,7695,1971,False,False,Am Hochschulcampus 1,44801,Bochum,http://www.hochschule-bochum.de,51.44369975,7.275029944237389 +Bochum HGesundheit,Hochschule für Gesundheit - University of Applied Sciences,Fachhochschulen / HAW,öffentlich-rechtlich,Nordrhein-Westfalen,1808,2009,False,False,Gesundheitscampus 6-8,44801,Bochum,http://www.hs-gesundheit.de,51.44369975,7.275029944237389 +Bochum Rheinland-Westfalen-Lippe EvH,Evangelische Hochschule Rheinland-Westfalen-Lippe,Fachhochschulen / HAW,"kirchlich, staatlich anerkannt",Nordrhein-Westfalen,2558,1971,False,False,Immanuel-Kant-Straße 18-20,44803,Bochum,http://www.evh-bochum.de,51.4691355,7.26187541470412 +Bochum TH,Technische Hochschule Georg Agricola,Fachhochschulen / HAW,"privat, staatlich anerkannt",Nordrhein-Westfalen,2316,1816,False,False,Herner Straße 45,44787,Bochum,http://www.thga.de,51.48061895,7.220006291154673 +Bochum U,Ruhr-Universität Bochum,Universitäten,öffentlich-rechtlich,Nordrhein-Westfalen,38939,1962,True,True,Universitätsstraße 150,44801,Bochum,http://www.ruhr-uni-bochum.de,51.44369975,7.275029944237389 +Bonn HFinMan,Hochschule für Finanzwirtschaft & Management,Fachhochschulen / HAW,"privat, staatlich anerkannt",Nordrhein-Westfalen,710,2003,False,False,Simrockstraße 4,53113,Bonn,http://www.s-hochschule.de,50.720036,7.122213527087392 +Bonn-Rhein-Sieg H,"Hochschule Bonn-Rhein-Sieg, University of Applied Sciences",Fachhochschulen / HAW,öffentlich-rechtlich,Nordrhein-Westfalen,9070,1995,False,False,Grantham-Allee 20,53757,Sankt Augustin,www.h-brs.de,50.76995325,7.1900982828405775 +Bonn U,Rheinische Friedrich-Wilhelms-Universität Bonn,Universitäten,öffentlich-rechtlich,Nordrhein-Westfalen,34630,1818,True,True,Regina-Pacis-Weg 3,53113,Bonn,http://www.uni-bonn.de,50.720036,7.122213527087392 +Brandenburg FHFinanz (Verw),Fachhochschule für Finanzen Brandenburg,Verwaltungshochschule,öffentlich-rechtlich,Brandenburg,978,1991,False,False,Schillerstraße 6,15711,Königs Wusterhausen,https://fhf.brandenburg.de/fhf/de/,52.28655165,13.621854195073801 +Brandenburg FHPol (Verw),Fachhochschule der Polizei Brandenburg,Verwaltungshochschule,öffentlich-rechtlich,Brandenburg,763,1998,False,False,Bernauer Str. 146,16515,Oranienburg,https://hpolbb.de/,52.77117925,13.287802770035833 +Brandenburg TH,Technische Hochschule Brandenburg,Fachhochschulen / HAW,öffentlich-rechtlich,Brandenburg,2217,1992,False,False,Magdeburger Straße 50,14770,Brandenburg,http://www.th-brandenburg.de,52.4059608,12.513016033524364 +Braunschweig HBK,Hochschule für Bildende Künste Braunschweig,Künstlerische Hochschulen,öffentlich-rechtlich,Niedersachsen,931,1963,True,True,Johannes-Selenka-Platz 1,38118,Braunschweig,https://www.hbk-bs.de,52.259933000000004,10.501022674992623 +Braunschweig TU,Technische Universität Carolo-Wilhelmina zu Braunschweig,Universitäten,öffentlich-rechtlich,Niedersachsen,16155,1745,True,True,Universitätsplatz 2,38106,Braunschweig,https://www.tu-braunschweig.de,52.280675200000005,10.535612619380952 +Bremen CU,Constructor University,Universitäten,"privat, staatlich anerkannt",Bremen,1483,1999,True,False,Campus Ring 1,28759,Bremen,https://constructor.university/,53.168969000000004,8.6512615239109 +Bremen FernFH,APOLLON Hochschule der Gesundheitswirtschaft,Fachhochschulen / HAW,"privat, staatlich anerkannt",Bremen,3365,2005,False,False,Universitätsallee 18,28359,Bremen,http://www.apollon-hochschule.de/redirect.php?id=32,53.102267499999996,8.864140996396923 +Bremen H,Hochschule Bremen,Fachhochschulen / HAW,öffentlich-rechtlich,Bremen,8672,1982,False,False,Neustadtwall 30,28199,Bremen,http://www.hs-bremen.de,53.058201499999996,8.78191226820229 +Bremen HfK,Hochschule für Künste Bremen,Künstlerische Hochschulen,öffentlich-rechtlich,Bremen,1011,1873,False,False,Am Speicher XI 8,28217,Bremen,http://www.hfk-bremen.de,53.0961375,8.776304329190356 +Bremen U,Universität Bremen,Universitäten,öffentlich-rechtlich,Bremen,18335,1971,True,True,Bibliothekstraße 1,28359,Bremen,http://www.uni-bremen.de,53.102267499999996,8.864140996396923 +Bremen VerwH (Verw),Hochschule für Öffentliche Verwaltung Bremen,Verwaltungshochschule,öffentlich-rechtlich,Bremen,648,1979,False,False,Doventorscontrescarpe 172c,28195,Bremen,www.hfoev.bremen.de,53.080774500000004,8.804503016108011 +Bremerhaven H,Hochschule Bremerhaven,Fachhochschulen / HAW,öffentlich-rechtlich,Bremen,2816,1975,False,False,An der Karlstadt 8,27568,Bremerhaven,http://www.hs-bremerhaven.de,53.5679385,8.566120495703004 +Brühl EUFH,"Europäische Fachhochschule Rhein/Erft, european university of applied sciences",Fachhochschulen / HAW,"privat, staatlich anerkannt",Nordrhein-Westfalen,2180,2001,False,False,Kaiserstraße 6,50321,Brühl,https://www.eufh.de,50.81810745,6.8895610088067905 +Brühl HSBund (Verw),Hochschule des Bundes für öffentliche Verwaltung,Verwaltungshochschule,öffentlich-rechtlich,Nordrhein-Westfalen,9195,1979,False,False,Willy-Brandt-Straße 1,50321,Brühl,https://www.hsbund.de/,50.81810745,6.8895610088067905 +Buxtehude FH,hochschule 21,Fachhochschulen / HAW,"privat, staatlich anerkannt",Niedersachsen,1067,2005,False,False,Harburger Straße 6,21614,Buxtehude,https://www.hs21.de,53.4611745,9.68717910663118 +Chemnitz TU,Technische Universität Chemnitz,Universitäten,öffentlich-rechtlich,Sachsen,8380,1836,True,True,Straße der Nationen 62,09111,Chemnitz,http://www.tu-chemnitz.de,50.83466555,12.921896957974116 +Clausthal TU,Technische Universität Clausthal,Universitäten,öffentlich-rechtlich,Niedersachsen,2753,1775,True,True,Adolph-Roemer-Straße 2 A,38678,Clausthal-Zellerfeld,https://www.tu-clausthal.de,51.81151935,10.31742014024083 +Coburg H,Hochschule für angewandte Wissenschaften Coburg,Fachhochschulen / HAW,öffentlich-rechtlich,Bayern,4700,1814,False,False,Friedrich-Streib-Straße 2,96450,Coburg,http://www.hs-coburg.de,50.2603765,10.982065403742084 +Cottbus-Senftenberg TU,Brandenburgische Technische Universität Cottbus-Senftenberg,Universitäten,öffentlich-rechtlich,Brandenburg,6587,2013,True,True,Platz der Dt. Einheit 1,03046,Cottbus,http://www.b-tu.de,51.760537049999996,14.310125021451874 +Darmstadt EvH,Evangelische Hochschule Darmstadt (staatlich anerkannt) – Kirchliche Körperschaft des öffentlichen Rechts,Fachhochschulen / HAW,"kirchlich, staatlich anerkannt",Hessen,1333,1971,False,False,Zweifalltorweg 12,64293,Darmstadt,http://www.eh-darmstadt.de,49.88303245,8.6282758454485 +Darmstadt FernH,Wilhelm Büchner Hochschule - Private Fernhochschule Darmstadt,Fachhochschulen / HAW,"privat, staatlich anerkannt",Hessen,4915,1997,False,False,Hilpertstr. 31,64295,Darmstadt,http://www.wb-fernstudium.de?referrer=hochschulkompass_portal,49.851086499999994,8.6077045019401 +Darmstadt H,Hochschule Darmstadt,Fachhochschulen / HAW,öffentlich-rechtlich,Hessen,15474,1876,True,False,Schöfferstraße 3,64295,Darmstadt,http://www.h-da.de/,49.851086499999994,8.6077045019401 +Darmstadt TU,Technische Universität Darmstadt,Universitäten,öffentlich-rechtlich,Hessen,24008,1877,True,True,Karolinenplatz 5,64289,Darmstadt,http://www.tu-darmstadt.de,49.8976512,8.682286602664922 +Deggendorf TH,Technische Hochschule Deggendorf,Fachhochschulen / HAW,öffentlich-rechtlich,Bayern,8660,1994,False,False,Dieter-Görlitz-Platz 1,94469,Deggendorf,http://www.th-deg.de,48.84772825,12.972639629534562 +Detmold HfM,Hochschule für Musik Detmold,Künstlerische Hochschulen,öffentlich-rechtlich,Nordrhein-Westfalen,637,1946,True,False,Neustadt 22,32756,Detmold,http://www.hfm-detmold.de/,51.936755149999996,8.869747022085079 +Dortmund FH,Fachhochschule Dortmund,Fachhochschulen / HAW,öffentlich-rechtlich,Nordrhein-Westfalen,14371,1890,False,False,Sonnenstraße 96,44139,Dortmund,http://www.fh-dortmund.de,51.497067200000004,7.4582355149132695 +Dortmund ISM,International School of Management,Fachhochschulen / HAW,"privat, staatlich anerkannt",Nordrhein-Westfalen,3444,1990,False,False,Otto-Hahn-Straße 19,44227,Dortmund,https://www.ism.de,51.46467605,7.415219065857367 +Dortmund TU,Technische Universität Dortmund,Universitäten,öffentlich-rechtlich,Nordrhein-Westfalen,30013,1968,True,True,August-Schmidt-Straße 4,44227,Dortmund,http://www.tu-dortmund.de,51.46467605,7.415219065857367 +Dresden DIU,DIU - Dresden International University GmbH,Universitäten,"privat, staatlich anerkannt",Sachsen,1283,2003,False,False,Freiberger Straße 37,01067,Dresden,https://www.di-uni.de/,51.060193600000005,13.711169198080734 +Dresden EvH,Evangelische Hochschule Dresden,Fachhochschulen / HAW,"kirchlich, staatlich anerkannt",Sachsen,839,1991,False,False,Dürerstraße 25,01307,Dresden,www.ehs-dresden.de,51.052666099999996,13.769359095023507 +Dresden HfBK,Hochschule für Bildende Künste Dresden,Künstlerische Hochschulen,öffentlich-rechtlich,Sachsen,555,1764,True,False,Güntzstraße 34,01307,Dresden,http://www.hfbk-dresden.de,51.052666099999996,13.769359095023507 +Dresden HfKiM,Hochschule für Kirchenmusik der Evangelisch-Lutherischen Landeskirche Sachsens,Künstlerische Hochschulen,"kirchlich, staatlich anerkannt",Sachsen,24,1949,False,False,Käthe Kollwitz Ufer 97,01309,Dresden,http://www.kirchenmusik-dresden.de,51.0493044,13.79047582816632 +Dresden HfM,Hochschule für Musik Carl Maria von Weber Dresden,Künstlerische Hochschulen,öffentlich-rechtlich,Sachsen,692,1856,True,False,Wettiner Platz 13,01067,Dresden,http://www.hfmdd.de,51.060193600000005,13.711169198080734 +Dresden HfTanz,Palucca Hochschule für Tanz Dresden,Künstlerische Hochschulen,öffentlich-rechtlich,Sachsen,168,1925,False,False,Basteiplatz 4,01277,Dresden,http://www.palucca.eu,51.0374515,13.799844114622722 +Dresden HTW,Hochschule für Technik und Wirtschaft Dresden - University of Applied Sciences,Fachhochschulen / HAW,öffentlich-rechtlich,Sachsen,4634,1992,False,False,Friedrich-List-Platz 1,01069,Dresden,http://www.htw-dresden.de,51.03964315,13.730302822492835 +Dresden PFH,Fachhochschule Dresden,Fachhochschulen / HAW,"privat, staatlich anerkannt",Sachsen,539,2010,False,False,Güntzstraße 1,01069,Dresden,https://www.fh-dresden.eu,51.03964315,13.730302822492835 +Dresden TU,Technische Universität Dresden,Universitäten,öffentlich-rechtlich,Sachsen,28959,1828,True,True,Mommsenstraße 11,01069,Dresden,https://tu-dresden.de,51.03964315,13.730302822492835 +Duisburg-Essen U,Universität Duisburg-Essen,Universitäten,öffentlich-rechtlich,Nordrhein-Westfalen,38001,2003,True,True,Universitätsstraße 2,45141,Essen,http://www.uni-due.de,51.47765855,7.035230389057875 +Düsseldorf FliednerFH,Fliedner Fachhochschule Düsseldorf,Fachhochschulen / HAW,"privat, staatlich anerkannt",Nordrhein-Westfalen,2204,2011,False,False,Geschwister-Aufricht-Straße 9,40489,Düsseldorf,http://www.fliedner-fachhochschule.de,51.31942975,6.775134509449771 +Düsseldorf H,Hochschule Düsseldorf,Fachhochschulen / HAW,öffentlich-rechtlich,Nordrhein-Westfalen,11172,1971,False,False,Münsterstraße 156,40476,Düsseldorf,https://www.hs-duesseldorf.de/studienangebot,51.2497334,6.782641553282078 +Düsseldorf HfM,Robert-Schumann-Hochschule Düsseldorf,Künstlerische Hochschulen,öffentlich-rechtlich,Nordrhein-Westfalen,837,1935,True,False,Fischerstraße 110,40476,Düsseldorf,http://www.rsh-duesseldorf.de,51.2497334,6.782641553282078 +Düsseldorf IST,IST-Hochschule für Management,Fachhochschulen / HAW,"privat, staatlich anerkannt",Nordrhein-Westfalen,4278,2012,False,False,Erkrather Str. 220 a-c,40233,Düsseldorf,https://www.ist-hochschule.de,51.2212449,6.813642387578902 +Düsseldorf KuAk,Kunstakademie Düsseldorf,Künstlerische Hochschulen,öffentlich-rechtlich,Nordrhein-Westfalen,546,1814,True,False,Eiskellerstraße 1,40213,Düsseldorf,http://www.kunstakademie-duesseldorf.de,51.2239304,6.77234977660277 +Düsseldorf U,Heinrich-Heine-Universität Düsseldorf,Universitäten,öffentlich-rechtlich,Nordrhein-Westfalen,29218,1965,True,True,Universitätsstraße 1,40225,Düsseldorf,http://www.hhu.de,51.19524065,6.793096558889756 +Eberswalde H,Hochschule für nachhaltige Entwicklung Eberswalde,Fachhochschulen / HAW,öffentlich-rechtlich,Brandenburg,2297,1830,False,False,Schicklerstr. 5,16225,Eberswalde,https://www.hnee.de/,52.8293634,13.83842277295783 +Eichstätt - Ingolstadt U,Katholische Universität Eichstätt - Ingolstadt,Universitäten,"kirchlich, staatlich anerkannt",Bayern,4800,1980,True,True,Ostenstraße 26,85072,Eichstätt,http://www.ku.de,48.88633275,11.198939616989978 +Elmshorn FH Nordakademie,NORDAKADEMIE Hochschule der Wirtschaft,Fachhochschulen / HAW,"privat, staatlich anerkannt",Schleswig-Holstein,2481,1992,False,False,Köllner Chaussee 11,25337,Elmshorn,https://www.nordakademie.de,53.746547899999996,9.70956795093827 +Elstal ThH,Theologische Hochschule Elstal,Fachhochschulen / HAW,"kirchlich, staatlich anerkannt",Brandenburg,39,1880,False,False,Johann-Gerhard-Oncken-Straße 7,14641,Wustermark,http://www.th-elstal.de/,52.6124679,12.811209862811966 +Emden/Leer H,Hochschule Emden/Leer,Fachhochschulen / HAW,öffentlich-rechtlich,Niedersachsen,4264,2009,False,False,Constantiaplatz 4,26723,Emden,http://www.hs-emden-leer.de/,53.36583865,7.138975617826522 +Erfurt FH,Fachhochschule Erfurt,Fachhochschulen / HAW,öffentlich-rechtlich,Thüringen,4063,1991,False,False,Altonaer Straße 25,99085,Erfurt,http://www.fh-erfurt.de,50.99992535,11.054975987585859 +Erfurt HMU,HMU Health and Medical University,Hochschulen eigenen Typs,"privat, staatlich anerkannt",Thüringen,1433,2019,False,False,Nordhäuser Straße 74,99089,Erfurt,https://www.health-and-medical-university.de,50.997794049999996,11.013601481695362 +Erfurt IU,IU Internationale Hochschule,Fachhochschulen / HAW,"privat, staatlich anerkannt",Thüringen,116027,1998,False,False,Juri-Gagarin-Ring 152,99084,Erfurt,https://www.iu.de/,50.9761491,11.027044938641687 +Erfurt U,Universität Erfurt,Universitäten,öffentlich-rechtlich,Thüringen,5795,1994,True,True,Nordhäuser Straße 63,99089,Erfurt,http://www.uni-erfurt.de,50.997794049999996,11.013601481695362 +Erlangen-Nürnberg U,Friedrich-Alexander-Universität Erlangen-Nürnberg,Universitäten,öffentlich-rechtlich,Bayern,38960,1743,True,True,Schlossplatz 4,91054,Erlangen,http://www.fau.de,49.60293755,11.020958161231558 +Essen FOM,FOM Hochschule für Oekonomie & Management - University of Applied Sciences,Fachhochschulen / HAW,"privat, staatlich anerkannt",Nordrhein-Westfalen,47191,1993,False,False,Leimkugelstraße 6,45141,Essen,https://www.fom.de,51.47765855,7.035230389057875 +Essen HBK,Hochschule der bildenden Künste (HBK) Essen,Künstlerische Hochschulen,"privat, staatlich anerkannt",Nordrhein-Westfalen,322,2013,False,False,Prinz-Friedrich-Str. 28 A,45257,Essen,http://hbk-essen.de/,51.386360999999994,7.088177022014726 +Essen UdK,Folkwang Universität der Künste,Künstlerische Hochschulen,öffentlich-rechtlich,Nordrhein-Westfalen,1625,1927,True,True,Klemensborn 39,45239,Essen,http://www.folkwang-uni.de,51.3817606,7.006142632471238 +Esslingen H,Hochschule Esslingen,Fachhochschulen / HAW,öffentlich-rechtlich,Baden-Württemberg,6594,1868,False,False,Kanalstraße 33,73728,Esslingen,http://www.hs-esslingen.de,48.7409931,9.306045177067606 +Ewersbach ThH,Theologisches Hochschule Ewersbach,Fachhochschulen / HAW,"kirchlich, staatlich anerkannt",Hessen,47,1912,False,False,Jahnstraße 49-53,35716,Dietzhölztal,http://th-ewersbach.de,50.8485885,8.292896344621663 +Flensburg H,Hochschule Flensburg,Fachhochschulen / HAW,öffentlich-rechtlich,Schleswig-Holstein,3355,1886,False,False,Kanzleistraße 91-93,24943,Flensburg,http://www.hs-flensburg.de,54.78414385000001,9.473561497507088 +Flensburg U,Europa-Universität Flensburg,Universitäten,öffentlich-rechtlich,Schleswig-Holstein,5998,1946,True,True,Auf dem Campus 1,24943,Flensburg,http://www.uni-flensburg.de,54.78414385000001,9.473561497507088 +Frankfurt am Main FH,Frankfurt University of Applied Sciences,Fachhochschulen / HAW,öffentlich-rechtlich,Hessen,15297,1971,True,False,Nibelungenplatz 1,60318,Frankfurt am Main,www.frankfurt-university.de,50.124688649999996,8.68652544754162 +Frankfurt am Main FHProvadis,Provadis School of International Management and Technology,Fachhochschulen / HAW,"privat, staatlich anerkannt",Hessen,870,2003,False,False,Rudolf-Amthauer-Straße,65926,Frankfurt am Main,http://www.provadis-hochschule.de/,50.08429,8.5467874 +Frankfurt am Main FSFM,Frankfurt School of Finance & Management,Universitäten,"privat, staatlich anerkannt",Hessen,4381,1990,True,False,Adickesallee 32-34,60322,Frankfurt am Main,http://www.frankfurt-school.de/home,50.12469085,8.676296762012985 +Frankfurt am Main HfBK,Hochschule für Bildende Künste (Städelschule),Künstlerische Hochschulen,öffentlich-rechtlich,Hessen,140,1817,False,False,Dürerstraße 10,60596,Frankfurt am Main,http://www.staedelschule.de,50.097374450000004,8.67108367545128 +Frankfurt am Main HfM,Hochschule für Musik und Darstellende Kunst Frankfurt am Main,Künstlerische Hochschulen,öffentlich-rechtlich,Hessen,971,1878,True,False,Eschersheimer Landstraße 29-39,60322,Frankfurt am Main,https://www.hfmdk-frankfurt.de,50.12469085,8.676296762012985 +Frankfurt am Main PhThH,Philosophisch-Theologische Hochschule Sankt Georgen Frankfurt am Main,Universitäten,"kirchlich, staatlich anerkannt",Hessen,221,1926,True,True,Offenbacher Landstraße 224,60599,Frankfurt am Main,http://www.sankt-georgen.de,50.082684900000004,8.712545656021826 +Frankfurt am Main U,"Johann Wolfgang Goethe-Universität, Frankfurt am Main",Universitäten,öffentlich-rechtlich,Hessen,41107,1914,True,True,Theodor-W.-Adorno-Platz 1,60323,Frankfurt am Main,http://www.uni-frankfurt.de,50.12380455,8.66179047387983 +Frankfurt am Main UoL,University of Labour,Fachhochschulen / HAW,"privat, staatlich anerkannt",Hessen,17,2021,False,False,Eschersheimer Landstr. 155-157,60323,Frankfurt am Main,https://www.university-of-labour.de/,50.12380455,8.66179047387983 +Frankfurt (Oder) U,Europa-Universität Viadrina Frankfurt (Oder),Universitäten,öffentlich-rechtlich,Brandenburg,4230,1991,True,True,Große Scharrnstraße 59,15230,Frankfurt (Oder),https://www.europa-uni.de,52.336540049999996,14.554393780692156 +Freiberg TUBergAk,Technische Universität Bergakademie Freiberg,Universitäten,öffentlich-rechtlich,Sachsen,4199,1765,True,True,Akademiestraße 6,09599,Freiberg,http://tu-freiberg.de,50.917197900000005,13.339400646973571 +Freiburg EvHS,"Evangelische Hochschule Freiburg, staatlich anerkannte Hochschule der Evangelischen Landeskirche in Baden",Fachhochschulen / HAW,"kirchlich, staatlich anerkannt",Baden-Württemberg,898,1971,False,False,Bugginger Straße 38,79114,Freiburg,https://www.eh-freiburg.de,47.99824115,7.80779986551682 +Freiburg HfM,Hochschule für Musik Freiburg im Breisgau,Künstlerische Hochschulen,öffentlich-rechtlich,Baden-Württemberg,627,1946,True,True,Mendelssohn-Bartholdy-Platz 1,79102,Freiburg,https://www.mh-freiburg.de,47.98671215,7.860681741846605 +Freiburg KathHS,"Katholische Hochschule Freiburg, staatlich anerkannte Hochschule - Catholic University of Applied Sciences",Fachhochschulen / HAW,"kirchlich, staatlich anerkannt",Baden-Württemberg,1886,1971,False,False,Karlstraße 63,79104,Freiburg,www.kh-freiburg.de,48.0105793,7.880673077986286 +Freiburg PH,Pädagogische Hochschule Freiburg,Universitäten,öffentlich-rechtlich,Baden-Württemberg,5013,1962,True,True,Kunzenweg 21,79117,Freiburg,http://www.ph-freiburg.de,47.96398895,7.900940010827744 +Freiburg U,Albert-Ludwigs-Universität Freiburg im Breisgau,Universitäten,öffentlich-rechtlich,Baden-Württemberg,24197,1457,True,True,Fahnenbergplatz,79085,Freiburg,https://www.uni-freiburg.de,47.9959,7.8522 +Friedensau ThH,Theologische Hochschule Friedensau,Universitäten,"kirchlich, staatlich anerkannt",Sachsen-Anhalt,224,1899,False,False,An der Ihle 19,39291,Friedensau,https://www.thh-friedensau.de/,52.1920736,12.037671198298263 +Friedrichshafen ZU,"Zeppelin Universität - Hochschule zwischen Wirtschaft, Kultur und Politik",Universitäten,"privat, staatlich anerkannt",Baden-Württemberg,667,2003,True,True,Am Seemoser Horn 20,88045,Friedrichshafen,http://www.zu.de,47.6650116,9.46165649676518 +Fulda H,Hochschule Fulda - University of Applied Sciences,Fachhochschulen / HAW,öffentlich-rechtlich,Hessen,8963,1974,True,False,Leipziger Straße 123,36037,Fulda,www.hs-fulda.de,50.55848055,9.688378956866607 +Fulda ThFak,Theologische Fakultät Fulda,Universitäten,"kirchlich, staatlich anerkannt",Hessen,13,1734,True,True,Eduard-Schick-Platz 2,36037,Fulda,http://www.thf-fulda.de,50.55848055,9.688378956866607 +Furtwangen H,"Hochschule Furtwangen - Informatik, Technik, Wirtschaft, Medien, Gesundheit",Fachhochschulen / HAW,öffentlich-rechtlich,Baden-Württemberg,4833,1850,False,False,Robert-Gerwig-Platz 1,78120,Furtwangen,http://www.hs-furtwangen.de,48.04776715,8.222916875289414 +Geisenheim H,Hochschule Geisenheim,Hochschulen eigenen Typs,öffentlich-rechtlich,Hessen,1723,2013,True,False,Von-Lade-Straße 1,65366,Geisenheim,http://www.hs-geisenheim.de,50.03623295,7.940647495451144 +Gera-Eisenach DH,Duale Hochschule Gera-Eisenach,Hochschulen eigenen Typs,öffentlich-rechtlich,Thüringen,1395,2016,False,False,Weg der Freundschaft 4,07546,Gera,https://www.dhge.de/,50.8889431,12.098714610333897 +Gera H,SRH Hochschule für Gesundheit,Fachhochschulen / HAW,"privat, staatlich anerkannt",Thüringen,1434,2007,False,False,Neue Straße 28 - 30,07548,Gera,https://www.srh-gesundheitshochschule.de/,50.88059455,12.038801259357676 +Giessen FThH,Freie Theologische Hochschule Gießen,Fachhochschulen / HAW,"privat, staatlich anerkannt",Hessen,191,1974,False,False,Rathenaustraße 5-7,35394,Gießen,http://www.fthgiessen.de,50.5775634,8.712823978101909 +Giessen U,Justus-Liebig-Universität Gießen,Universitäten,öffentlich-rechtlich,Hessen,25461,1607,True,True,Ludwigstraße 23,35390,Gießen,http://www.uni-giessen.de,50.5879221,8.67665858322707 +Göttingen PFH,PFH - Private Hochschule Göttingen,Fachhochschulen / HAW,"privat, staatlich anerkannt",Niedersachsen,4775,1995,False,False,Weender Landstr. 3-7,37073,Göttingen,www.pfh.de,51.53769405,9.938134566376148 +Göttingen U,Georg-August-Universität Göttingen,Universitäten,öffentlich-rechtlich,Niedersachsen,27562,1737,True,True,Wilhelmsplatz 1,37073,Göttingen,http://www.uni-goettingen.de,51.53769405,9.938134566376148 +Greifswald U,Universität Greifswald,Universitäten,öffentlich-rechtlich,Mecklenburg-Vorpommern,10296,1456,True,True,Domstraße 11,17489,Greifswald,http://www.uni-greifswald.de,54.08374285,13.359941775539475 +Hachenburg HBundesbank (Verw),Hochschule der Deutschen Bundesbank,Verwaltungshochschule,öffentlich-rechtlich,Rheinland-Pfalz,408,1980,False,False,Schloss,57627,Hachenburg,http://www.hochschule-bundesbank.de,50.64359155,7.824354586610591 +Hagen FernU,FernUniversität in Hagen,Universitäten,öffentlich-rechtlich,Nordrhein-Westfalen,63326,1974,True,True,Universitätsstraße 47,58097,Hagen,https://www.fernuni-hagen.de,51.370102349999996,7.479911909166301 +Halle HfKiM,Evangelische Hochschule für Kirchenmusik,Künstlerische Hochschulen,"kirchlich, staatlich anerkannt",Sachsen-Anhalt,59,1926,False,False,Kleine Ulrichstraße 35,06108,Halle,http://www.ehk-halle.de,51.490435149999996,11.962850126063312 +Halle KuH,Burg Giebichenstein Kunsthochschule Halle,Künstlerische Hochschulen,öffentlich-rechtlich,Sachsen-Anhalt,1194,1915,True,False,Neuwerk 7,06108,Halle,http://www.burg-halle.de,51.490435149999996,11.962850126063312 +Halle-Wittenberg U,Martin-Luther-Universität Halle-Wittenberg,Universitäten,öffentlich-rechtlich,Sachsen-Anhalt,19227,1502,True,True,Universitätsplatz 11,06108,Halle,www.uni-halle.de,51.490435149999996,11.962850126063312 +Hamburg AkFinanz (Verw),Norddeutsche Akademie für Finanzen und Steuerrecht,Verwaltungshochschule,öffentlich-rechtlich,Hamburg,349,2010,False,False,Hammer Steindamm 129,20535,Hamburg,https://www.hamburg.de/fb/norddeutsche-akademie-fuer-finanzen-und-steuerrecht-hamburg/,53.5593439,10.050219910567282 +Hamburg AkPol (Verw),Akademie der Polizei Hamburg,Verwaltungshochschule,öffentlich-rechtlich,Hamburg,582,2013,False,False,Carl-Cohn-Straße 39,22297,Hamburg,https://akademie-der-polizei.hamburg.de/fachhochschulbereich,53.60751465,10.01298719354726 +Hamburg BHH,Berufliche Hochschule Hamburg (BHH),Hochschulen eigenen Typs,öffentlich-rechtlich,Hamburg,219,2020,False,False,Anckelmannstraße 10,20537,Hamburg,https://bhh.hamburg.de/,53.54780075,10.04968109378143 +Hamburg BLS,"Bucerius Law School, Hochschule für Rechtswissenschaft",Universitäten,"privat, staatlich anerkannt",Hamburg,849,2000,True,True,Jungiusstraße 6,20355,Hamburg,https://www.law-school.de,53.5565531,9.979856200587182 +Hamburg EFH,Europäische Fernhochschule Hamburg,Fachhochschulen / HAW,"privat, staatlich anerkannt",Hamburg,9646,2003,False,False,Doberaner Weg 20-22,22143,Hamburg,http://www.euro-fh.de,53.605676,10.166847866387958 +Hamburg EvH,Evangelische Hochschule für Soziale Arbeit & Diakonie,Fachhochschulen / HAW,"kirchlich, staatlich anerkannt",Hamburg,731,1971,False,False,Horner Weg 170,22111,Hamburg,http://www.ev-hochschule-hh.de,53.549611299999995,10.081882477300429 +Hamburg FernH,"Hamburger Fern-Hochschule, gemeinnützige GmbH",Fachhochschulen / HAW,"privat, staatlich anerkannt",Hamburg,14144,1997,False,False,Alter Teichweg 19,22081,Hamburg,https://www.hfh-fernstudium.de,53.574980749999995,10.046372049155416 +Hamburg FHBrand,Brand University of Applied Sciences,Fachhochschulen / HAW,"privat, staatlich anerkannt",Hamburg,314,2010,False,False,Lilienstraße 5-9,20095,Hamburg,https://www.brand-university.de/,53.55128685,9.999221586534006 +Hamburg HAW,Hochschule für Angewandte Wissenschaften Hamburg,Fachhochschulen / HAW,öffentlich-rechtlich,Hamburg,16877,1970,False,False,Berliner Tor 5,20099,Hamburg,https://www.haw-hamburg.de,53.55797725,10.0110185430166 +Hamburg HCU,HafenCity Universität Hamburg,Universitäten,öffentlich-rechtlich,Hamburg,2518,2006,True,True,Henning-Voscherau-Platz 1,20457,Hamburg,http://www.hcu-hamburg.de,53.53353765,9.980628448813693 +Hamburg HfBK,Hochschule für Bildende Künste Hamburg,Künstlerische Hochschulen,öffentlich-rechtlich,Hamburg,976,1767,True,False,Lerchenfeld 2,22081,Hamburg,http://www.hfbk-hamburg.de,53.574980749999995,10.046372049155416 +Hamburg HfM,Hochschule für Musik und Theater Hamburg,Künstlerische Hochschulen,öffentlich-rechtlich,Hamburg,1380,1950,True,False,Harvestehuder Weg 12,20148,Hamburg,http://www.hfmt-hamburg.de,53.56753755,9.997465697306026 +Hamburg HSBA,HSBA Hamburg School of Business Administration,Fachhochschulen / HAW,"privat, staatlich anerkannt",Hamburg,928,2004,False,False,Willy-Brandt-Straße 75,20459,Hamburg,http://www.hsba.de,53.5463124,9.978656437193713 +Hamburg KLU,Kühne Logistics University - Wissenschaftliche Hochschule für Logistik und Unternehmensführung,Universitäten,"privat, staatlich anerkannt",Hamburg,309,2010,True,False,Großer Grasbrook 17,20457,Hamburg,www.klu.org,53.53353765,9.980628448813693 +Hamburg MSH,MSH Medical School Hamburg - University of Applied Sciences and Medical University,Hochschulen eigenen Typs,"privat, staatlich anerkannt",Hamburg,4845,2009,False,False,Am Kaiserkai 1,20457,Hamburg,http://www.medicalschool-hamburg.de,53.53353765,9.980628448813693 +Hamburg NBS,NBS Northern Business School – University of Applied Sciences,Fachhochschulen / HAW,"privat, staatlich anerkannt",Hamburg,914,2007,False,False,Holstenhofweg 62,22043,Hamburg,http://www.nbs.de,53.57066655,10.113899703809619 +Hamburg TU,Technische Universität Hamburg,Universitäten,öffentlich-rechtlich,Hamburg,7384,1978,True,True,Am Schwarzenberg-Campus 3 (E),21073,Hamburg,http://www.tuhh.de/,53.4583753,9.973050355224753 +Hamburg U,Universität Hamburg,Universitäten,öffentlich-rechtlich,Hamburg,41802,1919,True,True,Mittelweg 177,20148,Hamburg,http://www.uni-hamburg.de,53.56753755,9.997465697306026 +Hamburg UBw,Helmut-Schmidt-Universität/Universität der Bundeswehr Hamburg,Universitäten,öffentlich-rechtlich,Hamburg,2546,1972,True,True,Holstenhofweg 85,22043,Hamburg,http://www.hsu-hh.de,53.57066655,10.113899703809619 +Hamm-Lippstadt H,Hochschule Hamm-Lippstadt,Fachhochschulen / HAW,öffentlich-rechtlich,Nordrhein-Westfalen,5134,2009,False,False,Marker Allee 76-78,59063,Hamm,http://www.hshl.de,51.67203945,7.837509530064095 +Hannover FHDW,Fachhochschule für die Wirtschaft Hannover,Fachhochschulen / HAW,"privat, staatlich anerkannt",Niedersachsen,569,1996,False,False,Freundallee 15,30173,Hannover,http://www.fhdw-hannover.de/,52.357700550000004,9.762291208299299 +Hannover H,Hochschule Hannover,Fachhochschulen / HAW,öffentlich-rechtlich,Niedersachsen,8891,1971,False,False,Expo Plaza 4,30539,Hannover,https://www.hs-hannover.de,52.3301018,9.844701348498123 +Hannover HfMTM,"Hochschule für Musik, Theater und Medien Hannover",Künstlerische Hochschulen,öffentlich-rechtlich,Niedersachsen,1395,1897,True,True,Neues Haus 1,30175,Hannover,http://www.hmtm-hannover.de,52.3798539,9.76852846603604 +Hannover LeibnizFH,Leibniz-Fachhochschule,Fachhochschulen / HAW,"privat, staatlich anerkannt",Niedersachsen,584,1920,False,False,Expo Plaza 11,30539,Hannover,http://www.leibniz-fh.de,52.3301018,9.844701348498123 +Hannover MedH,Medizinische Hochschule Hannover (MHH),Universitäten,öffentlich-rechtlich,Niedersachsen,3923,1963,True,True,Carl-Neuberg-Str. 1,30625,Hannover,http://www.mh-hannover.de,52.3767893,9.804498156568105 +Hannover TiHo,Stiftung Tierärztliche Hochschule Hannover,Universitäten,öffentlich-rechtlich,Niedersachsen,2347,1778,True,True,Bünteweg 2,30559,Hannover,http://www.tiho-hannover.de,52.3639883,9.848507094130522 +Hannover U,Gottfried Wilhelm Leibniz Universität Hannover,Universitäten,öffentlich-rechtlich,Niedersachsen,27323,1831,True,True,Welfengarten 1,30167,Hannover,http://www.uni-hannover.de,52.385172,9.716371119062575 +Harz H,"Hochschule Harz, Hochschule für angewandte Wissenschaften (FH)",Fachhochschulen / HAW,öffentlich-rechtlich,Sachsen-Anhalt,3017,1991,True,False,Friedrichstraße 57-59,38855,Wernigerode,http://www.hs-harz.de,51.86079815,10.819947227615105 +Heidelberg H,SRH Hochschule Heidelberg - Staatlich anerkannte Fachhochschule,Fachhochschulen / HAW,"privat, staatlich anerkannt",Baden-Württemberg,3112,1969,False,False,Ludwig-Guttmann-Str. 6,69123,Heidelberg,http://www.hochschule-heidelberg.de/?utm_source=WKZ-HD5003AA04,49.41779435,8.61412255587216 +Heidelberg HfJS,Hochschule für Jüdische Studien Heidelberg,Universitäten,"privat, staatlich anerkannt",Baden-Württemberg,105,1979,True,False,Landfriedstraße 12,69117,Heidelberg,http://www.hfjs.eu,49.3938242,8.721768238262754 +Heidelberg HfKiM,Hochschule für Kirchenmusik der Evangelischen Landeskirche in Baden,Künstlerische Hochschulen,"kirchlich, staatlich anerkannt",Baden-Württemberg,44,1931,False,False,Hildastr. 8,69115,Heidelberg,http://www.hfk-heidelberg.de,49.402372799999995,8.679834225979866 +Heidelberg HFresen,Hochschule Fresenius Heidelberg – staatlich anerkannte Hochschule der Hochschule Fresenius für Internationales Management GmbH,Fachhochschulen / HAW,"privat, staatlich anerkannt",Baden-Württemberg,672,2012,False,False,Sickingenstraße 63-65,69126,Heidelberg,https://www.hs-fresenius.de/standort/heidelberg/?crmid=aBbWvOcDeBjAaAaA,49.3773204,8.701597679159523 +Heidelberg PH,Pädagogische Hochschule Heidelberg,Universitäten,öffentlich-rechtlich,Baden-Württemberg,5271,1904,True,True,Keplerstraße 87,69120,Heidelberg,http://www.ph-heidelberg.de,49.41862755,8.690262802038525 +Heidelberg U,Ruprecht-Karls-Universität Heidelberg,Universitäten,öffentlich-rechtlich,Baden-Württemberg,29534,1386,True,True,Seminarstraße 2,69117,Heidelberg,http://www.uni-heidelberg.de,49.3938242,8.721768238262754 +Heilbronn H,"Hochschule Heilbronn, Technik, Wirtschaft, Informatik",Fachhochschulen / HAW,öffentlich-rechtlich,Baden-Württemberg,7159,1961,False,False,Max-Planck-Straße 39,74081,Heilbronn,http://www.hs-heilbronn.de,49.1130886,9.19601187805391 +Herford HfKiM,Hochschule für Kirchenmusik der Evangelischen Kirche von Westfalen,Künstlerische Hochschulen,"kirchlich, staatlich anerkannt",Nordrhein-Westfalen,46,1948,False,False,Parkstr. 6,32049,Herford,https://www.hochschule-kirchenmusik.de,52.1329377,8.708363667755814 +Hermannsburg FIT,Fachhochschule für Interkulturelle Theologie Hermannsburg,Fachhochschulen / HAW,"privat, staatlich anerkannt",Niedersachsen,78,2012,False,False,Missionsstraße 3-5,29320,Hermannsburg,http://www.fh-hermannsburg.de/,52.8297774,10.111190617035199 +Hessen HFinanz/Recht (Verw),Hessische Hochschule für Finanzen und Rechtspflege Rotenburg a.d. Fulda,Verwaltungshochschule,öffentlich-rechtlich,Hessen,2610,2006,False,False,Josef-Durstewitz Straße 2-6,36199,Rotenburg,https://studienzentrum-rotenburg.hessen.de/hhfr,51.0162386,9.739212990539299 +Hessen HOeffManagement(Verw),Hessische Hochschule für öffentliches Management und Sicherheit,Verwaltungshochschule,öffentlich-rechtlich,Hessen,4271,2022,False,False,Schönbergstraße 100,65199,Wiesbaden,https://hoems.hessen.de/,50.09054965,8.163552654443876 +Hildesheim U,Universität Hildesheim,Universitäten,öffentlich-rechtlich,Niedersachsen,7995,1978,True,True,Universitätsplatz 1,31141,Hildesheim,https://www.uni-hildesheim.de,52.1287914,9.98821276613709 +Hildesh./Holzm./Göttingen H,HAWK Hochschule für angewandte Wissenschaft und Kunst Hildesheim/Holzminden/Göttingen,Fachhochschulen / HAW,öffentlich-rechtlich,Niedersachsen,6325,1971,False,False,Hohnsen 4,31134,Hildesheim,https://www.hawk.de/de,52.1426466,9.952535684036963 +Hof H,Hochschule für angewandte Wissenschaften Hof,Fachhochschulen / HAW,öffentlich-rechtlich,Bayern,3822,1994,False,False,Alfons-Goppel-Platz 1,95028,Hof,http://www.hof-university.de,50.324146400000004,11.935875809591519 +Hohenheim U,Universität Hohenheim,Universitäten,öffentlich-rechtlich,Baden-Württemberg,8482,1818,True,True,Schloss Hohenheim 1,70599,Stuttgart,http://www.uni-hohenheim.de,48.71862925,9.200575778149734 +Idstein HFresen,Hochschule Fresenius,Fachhochschulen / HAW,"privat, staatlich anerkannt",Hessen,16028,1848,False,False,Limburger Straße 2,65510,Idstein,https://www.hs-fresenius.de/studienberatung/?crmid=aBbWvOcDaAaAaAaA,50.23217165,8.219092712816558 +Ilmenau TU,Technische Universität Ilmenau,Universitäten,öffentlich-rechtlich,Thüringen,4452,1894,True,True,Ehrenbergstraße 29,98693,Ilmenau,http://www.tu-ilmenau.de,50.680151949999996,10.929790903090652 +Ingolstadt TH,Technische Hochschule Ingolstadt,Fachhochschulen / HAW,öffentlich-rechtlich,Bayern,7537,1994,True,False,Esplanade 10,85049,Ingolstadt,https://www.thi.de,48.763799750000004,11.353434687477474 +Ismaning HAM,Hochschule für angewandtes Management,Fachhochschulen / HAW,"privat, staatlich anerkannt",Bayern,3646,2004,False,False,Steinheilstraße 4,85737,Ismaning,http://www.fham.de,48.23978095,11.710495313326774 +Jena H,Ernst-Abbe-Hochschule Jena - University of Applied Sciences,Fachhochschulen / HAW,öffentlich-rechtlich,Thüringen,4330,1991,False,False,Carl-Zeiss-Promenade 2,07745,Jena,https://www.eah-jena.de/,50.902749799999995,11.561141181042878 +Jena U,Friedrich-Schiller-Universität Jena,Universitäten,öffentlich-rechtlich,Thüringen,16588,1558,True,True,Fürstengraben 1,07743,Jena,http://www.uni-jena.de,50.94818695,11.594633463002086 +Kaiserslautern H,Hochschule Kaiserslautern (University of Applied Sciences),Fachhochschulen / HAW,öffentlich-rechtlich,Rheinland-Pfalz,5846,1996,False,False,Schoenstr. 11,67659,Kaiserslautern,www.hs-kl.de,49.46742105,7.749661524015271 +Kaiserslautern-Landau RPTU,Rheinland-Pfälzische Technische Universität Kaiserslautern-Landau,Universitäten,öffentlich-rechtlich,Rheinland-Pfalz,18520,1970,True,True,Gottlieb-Daimler-Straße 47,67663,Kaiserslautern,https://www.rptu.de/,49.4226316,7.798379611487587 +Karlsruhe AkdBK,Staatliche Akademie der Bildenden Künste Karlsruhe,Künstlerische Hochschulen,öffentlich-rechtlich,Baden-Württemberg,362,1854,True,False,Reinhold-Frank-Straße 67,76133,Karlsruhe,http://www.kunstakademie-karlsruhe.de,49.014552949999995,8.386901239704088 +Karlsruhe H,Hochschule Karlsruhe - Technik und Wirtschaft,Fachhochschulen / HAW,öffentlich-rechtlich,Baden-Württemberg,6814,1878,False,False,Moltkestraße 30,76133,Karlsruhe,http://www.h-ka.de,49.014552949999995,8.386901239704088 +Karlsruhe HfGest,Staatliche Hochschule für Gestaltung Karlsruhe,Künstlerische Hochschulen,öffentlich-rechtlich,Baden-Württemberg,376,1992,True,False,Lorenzstr. 15,76135,Karlsruhe,http://www.hfg-karlsruhe.de,48.9909722,8.382351310941846 +Karlsruhe HfM,Hochschule für Musik Karlsruhe,Künstlerische Hochschulen,öffentlich-rechtlich,Baden-Württemberg,577,1812,True,False,Am Schloss Gottesaue 7,76131,Karlsruhe,http://www.hfm-karlsruhe.de,49.0463015,8.423714805785195 +Karlsruhe KIU,Karlshochschule International University - staatlich anerkannte Hochschule der Karlshochschule gemeinnützige GmbH Karlsruhe,Fachhochschulen / HAW,"privat, staatlich anerkannt",Baden-Württemberg,361,2005,False,False,Karlstraße 36 - 38,76133,Karlsruhe,http://www.karlshochschule.de,49.014552949999995,8.386901239704088 +Karlsruhe PH,Pädagogische Hochschule Karlsruhe,Universitäten,öffentlich-rechtlich,Baden-Württemberg,3552,1962,True,True,Bismarckstraße 10,76133,Karlsruhe,http://www.ph-karlsruhe.de,49.014552949999995,8.386901239704088 +Karlsruhe U KIT,Karlsruher Institut für Technologie,Universitäten,öffentlich-rechtlich,Baden-Württemberg,22201,2009,True,True,Kaiserstraße 12,76131,Karlsruhe,http://www.kit.edu,49.0463015,8.423714805785195 +Kassel CVJM,CVJM-Hochschule,Fachhochschulen / HAW,"privat, staatlich anerkannt",Hessen,458,2009,False,False,Hugo-Preuß-Straße 40,34131,Kassel,http://www.cvjm-hochschule.de/,51.31522845,9.403824922756677 +Kassel U,Universität Kassel,Universitäten,öffentlich-rechtlich,Hessen,21791,1971,True,True,Mönchebergstraße 19,34125,Kassel,http://www.uni-kassel.de,51.338455100000004,9.554123653793493 +Kempten H,Hochschule für angewandte Wissenschaften Kempten,Fachhochschulen / HAW,öffentlich-rechtlich,Bayern,4777,1977,False,False,Bahnhofstraße 61,87435,Kempten,http://www.hs-kempten.de,47.7118355,10.302584956466255 +Kiel FH,Fachhochschule Kiel,Fachhochschulen / HAW,öffentlich-rechtlich,Schleswig-Holstein,7670,1969,False,False,Sokratesplatz 1,24149,Kiel,http://www.fh-kiel.de,54.33215865,10.188373793563404 +Kiel KuH,Muthesius Kunsthochschule,Künstlerische Hochschulen,öffentlich-rechtlich,Schleswig-Holstein,541,1994,True,False,Legienstraße 35,24103,Kiel,http://www.muthesius-kunsthochschule.de/de/,54.32276615,10.13605310838472 +Kiel U,Christian-Albrechts-Universität zu Kiel,Universitäten,öffentlich-rechtlich,Schleswig-Holstein,25940,1665,True,True,Christian-Albrechts-Platz 4,24118,Kiel,http://www.uni-kiel.de,54.3412831,10.118482223932585 +Koblenz H,Hochschule Koblenz,Fachhochschulen / HAW,öffentlich-rechtlich,Rheinland-Pfalz,8992,1996,False,False,Konrad-Zuse-Straße 1,56075,Koblenz,http://www.hs-koblenz.de,50.31858665,7.567119704393189 +Koblenz HfG,Hochschule für Gesellschaftsgestaltung,Hochschulen eigenen Typs,"privat, staatlich anerkannt",Rheinland-Pfalz,126,2015,False,False,Kornpfortstraße 15,56068,Koblenz,https://www.hfgg.de,50.3494613,7.594763211316648 +Koblenz U,Universität Koblenz,Universitäten,öffentlich-rechtlich,Rheinland-Pfalz,9485,1990,True,True,Universitätsstraße 1,56070,Koblenz,https://www.uni-koblenz.de/de,50.38632175,7.574273552904765 +Köln CBS,CBS International Business School - University of Applied Sciences,Fachhochschulen / HAW,"privat, staatlich anerkannt",Nordrhein-Westfalen,2475,1993,False,False,Bahnstraße 6 - 8,50996,Köln,https://www.cbs.de/,50.88153695,6.98367877746361 +Köln DSHS,Deutsche Sporthochschule Köln,Universitäten,öffentlich-rechtlich,Nordrhein-Westfalen,6098,1947,True,True,Am Sportpark Müngersdorf 6,50933,Köln,http://www.dshs-koeln.de,50.942780850000005,6.875105355772343 +Köln HfMT,Hochschule für Musik und Tanz Köln,Künstlerische Hochschulen,öffentlich-rechtlich,Nordrhein-Westfalen,1398,1845,True,False,Unter Krahnenbäumen 87,50668,Köln,http://www.hfmt-koeln.de,50.950473099999996,6.962944576674442 +Köln KolpingH,Kolping Hochschule,Fachhochschulen / HAW,"privat, staatlich anerkannt",Nordrhein-Westfalen,19,2019,False,False,Mevissenstr.3,50668,Köln,https://www.kolping-hochschule.de/,50.950473099999996,6.962944576674442 +Köln KuHMedien,Kunsthochschule für Medien Köln,Künstlerische Hochschulen,öffentlich-rechtlich,Nordrhein-Westfalen,413,1990,True,False,Peter-Welter-Platz 2,50676,Köln,http://www.khm.de,50.930204849999996,6.953021444701506 +Köln RheinH,Rheinische Hochschule Köln,Fachhochschulen / HAW,"privat, staatlich anerkannt",Nordrhein-Westfalen,5817,1958,False,False,Schaevenstraße 1a-b,50676,Köln,https://www.rh-koeln.de,50.930204849999996,6.953021444701506 +Köln TH,Technische Hochschule Köln,Fachhochschulen / HAW,öffentlich-rechtlich,Nordrhein-Westfalen,24294,1971,False,False,Claudiusstraße 1,50678,Köln,http://www.th-koeln.de,50.9242002,6.961637841547946 +Köln U,Universität zu Köln,Universitäten,öffentlich-rechtlich,Nordrhein-Westfalen,48063,1388,True,True,Albertus-Magnus-Platz,50931,Köln,https://uni-koeln.de,50.93346305,6.916362941138541 +Konstanz AllensbachH,"Allensbach Hochschule Konstanz, staatlich anerkannte Hochschule der European Education Group GmbH",Fachhochschulen / HAW,"privat, staatlich anerkannt",Baden-Württemberg,640,1996,False,False,Lohnerhofstraße 2,78467,Konstanz,https://www.allensbach-hochschule.de/,47.69091925,9.150883032465213 +Konstanz H,"Hochschule Konstanz Technik, Wirtschaft und Gestaltung",Fachhochschulen / HAW,öffentlich-rechtlich,Baden-Württemberg,4360,1906,False,False,Alfred-Wachtel-Straße 8,78462,Konstanz,http://www.htwg-konstanz.de,47.661950149999996,9.170679077228662 +Konstanz U,Universität Konstanz,Universitäten,öffentlich-rechtlich,Baden-Württemberg,10472,1966,True,True,Universitätsstraße 10,78464,Konstanz,https://www.uni-konstanz.de/,47.680462000000006,9.195440666343309 +Landshut H,Hochschule Landshut - Hochschule für angewandte Wissenschaften,Fachhochschulen / HAW,öffentlich-rechtlich,Bayern,4674,1978,False,False,Am Lurzenhof 1,84036,Landshut,http://www.haw-landshut.de,48.528478,12.180719650770794 +Leipzig HfGuB,Hochschule für Grafik und Buchkunst Leipzig,Künstlerische Hochschulen,öffentlich-rechtlich,Sachsen,589,1764,True,False,Wächterstraße 11,04107,Leipzig,http://www.hgb-leipzig.de,51.33006975,12.36697578849279 +Leipzig HHL,HHL Leipzig Graduate School of Management,Universitäten,"privat, staatlich anerkannt",Sachsen,739,1898,True,True,Jahnallee 59,04109,Leipzig,http://www.hhl.de,51.338546199999996,12.364280271419045 +Leipzig HMT,Hochschule für Musik und Theater Felix Mendelssohn Bartholdy Leipzig,Künstlerische Hochschulen,öffentlich-rechtlich,Sachsen,1129,1843,True,False,Grassistraße 8,04107,Leipzig,http://www.hmt-leipzig.de,51.33006975,12.36697578849279 +Leipzig HTWK,"Hochschule für Technik, Wirtschaft und Kultur Leipzig",Fachhochschulen / HAW,öffentlich-rechtlich,Sachsen,6843,1992,False,False,Karl-Liebknecht-Straße 132,04277,Leipzig,http://www.htwk-leipzig.de,51.3018488,12.36467670366595 +Leipzig U,Universität Leipzig,Universitäten,öffentlich-rechtlich,Sachsen,29582,1409,True,True,Ritterstraße 26,04109,Leipzig,http://www.uni-leipzig.de,51.338546199999996,12.364280271419045 +Lübeck HfM,Musikhochschule Lübeck,Künstlerische Hochschulen,öffentlich-rechtlich,Schleswig-Holstein,416,1973,True,False,Große Petersgrube 21,23552,Lübeck,http://www.mh-luebeck.de,53.86720615,10.687933723937665 +Lübeck TH,Technische Hochschule Lübeck,Fachhochschulen / HAW,öffentlich-rechtlich,Schleswig-Holstein,5138,1808,False,False,Mönkhofer Weg 239,23562,Lübeck,https://www.th-luebeck.de/,53.8279733,10.72377788308227 +Lübeck U,Universität zu Lübeck,Universitäten,öffentlich-rechtlich,Schleswig-Holstein,5958,1964,True,True,Ratzeburger Allee 160,23562,Lübeck,http://www.uni-luebeck.de,53.8279733,10.72377788308227 +Ludwigsburg PH,Pädagogische Hochschule Ludwigsburg,Universitäten,öffentlich-rechtlich,Baden-Württemberg,5988,1962,True,True,Reuteallee 46,71634,Ludwigsburg,http://www.ph-ludwigsburg.de,48.91024415,9.174084125820093 +Ludwigshafen HWG,Hochschule für Wirtschaft und Gesellschaft Ludwigshafen ,Fachhochschulen / HAW,öffentlich-rechtlich,Rheinland-Pfalz,4400,1965,False,False,Ernst-Boehe-Str. 4,67059,Ludwigshafen,http://www.hwg-lu.de,49.47577565,8.422626499929684 +Lüneburg U,Leuphana Universität Lüneburg,Universitäten,öffentlich-rechtlich,Niedersachsen,9268,1946,True,True,Universitätsallee 1,21335,Lüneburg,https://www.leuphana.de/services/studierendenservice/infoportal-erstauskunft-zum-studium.html,53.2230452,10.384524864528949 +Magdeburg SH,Steinbeis Hochschule,Fachhochschulen / HAW,"privat, staatlich anerkannt",Sachsen-Anhalt,4626,1998,False,False,Hegelstraße 39,39104,Magdeburg,https://www.steinbeis-hochschule.de/,52.115188200000006,11.630882029293115 +Magdeburg-Stendal H,Hochschule Magdeburg-Stendal,Fachhochschulen / HAW,öffentlich-rechtlich,Sachsen-Anhalt,5258,1991,True,False,Breitscheidstraße 2,39114,Magdeburg,http://www.h2.de,52.1130345,11.678084253335411 +Magdeburg U,Otto-von-Guericke-Universität Magdeburg,Universitäten,öffentlich-rechtlich,Sachsen-Anhalt,12490,1993,True,True,Universitätsplatz 2,39106,Magdeburg,http://www.ovgu.de,52.1454207,11.649465461859863 +Mainz H,Hochschule Mainz,Fachhochschulen / HAW,öffentlich-rechtlich,Rheinland-Pfalz,5621,1996,False,False,Lucy-Hillebrand-Straße 2,55128,Mainz,https://www.hs-mainz.de/,49.9803406,8.235944886723537 +Mainz KathH,Katholische Hochschule Mainz Catholic University of Applied Sciences,Fachhochschulen / HAW,"kirchlich, staatlich anerkannt",Rheinland-Pfalz,1543,1972,False,False,Saarstraße 3,55122,Mainz,https://www.kh-mz.de/katholische-hochschule/,50.0053273,8.233723668308905 +Mainz U,Johannes Gutenberg-Universität Mainz,Universitäten,öffentlich-rechtlich,Rheinland-Pfalz,29617,1477,True,True,Saarstraße 21,55122,Mainz,http://www.uni-mainz.de,50.0053273,8.233723668308905 +Mannheim H,Hochschule Mannheim,Fachhochschulen / HAW,öffentlich-rechtlich,Baden-Württemberg,5034,1898,False,False,Paul-Wittsack-Straße 10,68163,Mannheim,http://www.hs-mannheim.de,49.4685394,8.512367152516184 +Mannheim HdBA (Verw),Hochschule der Bundesagentur für Arbeit - Staatlich anerkannte Hochschule für angewandte Wissenschaft in Mannheim und Schwerin (University of Applied Labour Studies of the Federal Employment Agency),Verwaltungshochschule,öffentlich-rechtlich,Baden-Württemberg,1514,2006,False,False,Seckenheimer Landstraße 16,68163,Mannheim,http://www.hdba.de/,49.4685394,8.512367152516184 +Mannheim HdWM,Hochschule der Wirtschaft für Management,Fachhochschulen / HAW,"privat, staatlich anerkannt",Baden-Württemberg,290,2011,False,False,Oskar-Meixner-Straße 4-6,68163,Mannheim,http://www.hdwm.de,49.4685394,8.512367152516184 +Mannheim HfM,Staatliche Hochschule für Musik und Darstellende Kunst Mannheim,Künstlerische Hochschulen,öffentlich-rechtlich,Baden-Württemberg,575,1971,True,False,"N 7, 18",68161,Mannheim,http://www.muho-mannheim.de,49.48512255,8.469606949700758 +Mannheim U,Universität Mannheim,Universitäten,öffentlich-rechtlich,Baden-Württemberg,11397,1907,True,True,Schloss,68161,Mannheim,http://www.uni-mannheim.de,49.48512255,8.469606949700758 +Marburg EHTabor,Evangelische Hochschule Tabor,Fachhochschulen / HAW,"privat, staatlich anerkannt",Hessen,165,1909,False,False,Dürerstraße 43,35039,Marburg,www.eh-tabor.de,50.812504950000005,8.785766766461869 +Marburg U,Philipps-Universität Marburg,Universitäten,öffentlich-rechtlich,Hessen,21237,1527,True,True,Biegenstraße 10,35037,Marburg,http://www.uni-marburg.de,50.80198025,8.75343732487691 +Merseburg H,Hochschule Merseburg,Fachhochschulen / HAW,öffentlich-rechtlich,Sachsen-Anhalt,2953,1992,True,False,Eberhard-Leibnitz-Straße 2,06217,Merseburg,http://www.hs-merseburg.de,51.3406523,11.966549449897272 +Mittelhessen THM,Technische Hochschule Mittelhessen - THM,Fachhochschulen / HAW,öffentlich-rechtlich,Hessen,16795,1971,False,False,Wiesenstraße 14,35390,Gießen,http://www.thm.de,50.5879221,8.67665858322707 +Mittweida H,"Hochschule Mittweida, University of Applied Sciences",Fachhochschulen / HAW,öffentlich-rechtlich,Sachsen,6079,1867,False,False,Technikumplatz 17,09648,Mittweida,www.hs-mittweida.de,51.001553099999995,12.981743670619846 +München AkdBK,Akademie der Bildenden Künste München,Künstlerische Hochschulen,öffentlich-rechtlich,Bayern,754,1808,True,False,Akademiestraße 2-4,80799,München,http://www.adbk.de/,48.152073349999995,11.574806064751712 +München HAW,Hochschule für angewandte Wissenschaften München,Fachhochschulen / HAW,öffentlich-rechtlich,Bayern,18062,1971,False,False,Lothstr. 34,80335,München,http://www.hm.edu,48.146568599999995,11.551117658668703 +München HDBW,Hochschule der Bayerischen Wirtschaft für angewandte Wissenschaften - HDBW,Fachhochschulen / HAW,"privat, staatlich anerkannt",Bayern,469,2012,False,False,Konrad-Zuse-Platz 8,81829,München,www.hdbw-hochschule.de,48.1337855,11.683079620936187 +München HFF,Hochschule für Fernsehen und Film München,Künstlerische Hochschulen,öffentlich-rechtlich,Bayern,398,1966,True,False,Bernd-Eichinger-Platz 1,80333,München,http://www.hff-muc.de,48.144949249999996,11.568237712770191 +München HMT,Hochschule für Musik und Theater München,Künstlerische Hochschulen,öffentlich-rechtlich,Bayern,1182,1830,True,False,Arcisstraße 12,80333,München,http://www.hmtm.de,48.144949249999996,11.568237712770191 +München HPhil,Hochschule für Philosophie,Universitäten,"kirchlich, staatlich anerkannt",Bayern,419,1925,True,True,Kaulbachstraße 31,80539,München,http://www.hfph.de,48.14436135,11.58106988515561 +München IH,Internationale Hochschule SDI München - Hochschule für angewandte Wissenschaften,Fachhochschulen / HAW,"privat, staatlich anerkannt",Bayern,286,2007,False,False,Baierbrunner Straße 28,81379,München,https://www.sdi-muenchen.de/hochschule/,48.1025145,11.519520027304612 +München KathH,Katholische Stiftungshochschule für angewandte Wissenschaften München - Hochschule der Kirchlichen Stiftung des öffentlichen Rechts Katholische Bildungsstätten für Sozialberufe in Bayern,Fachhochschulen / HAW,"kirchlich, staatlich anerkannt",Bayern,2401,1971,False,False,Preysingstraße 95,81667,München,http://www.ksh-muenchen.de,48.1304143,11.601016273898741 +München MBS,Munich Business School - Staatlich anerkannte private Fachhochschule,Fachhochschulen / HAW,"privat, staatlich anerkannt",Bayern,613,1991,False,False,Elsenheimerstraße 61,80687,München,http://www.munich-business-school.de,48.1405161,11.50825458307936 +München TUM,Technische Universität München,Universitäten,öffentlich-rechtlich,Bayern,54575,1868,True,True,Arcisstraße 21,80333,München,http://www.tum.de,48.144949249999996,11.568237712770191 +München U,Ludwig-Maximilians-Universität München,Universitäten,öffentlich-rechtlich,Bayern,52086,1472,True,True,Geschwister-Scholl-Platz 1,80539,München,http://www.lmu.de,48.14436135,11.58106988515561 +München UBw,Universität der Bundeswehr München,Universitäten,öffentlich-rechtlich,Bayern,3456,1973,True,True,Werner-Heisenberg-Weg 39,85577,Neubiberg,http://www.unibw.de,48.0743,11.6586 +Münster FH,FH Münster University of Applied Sciences,Fachhochschulen / HAW,öffentlich-rechtlich,Nordrhein-Westfalen,15184,1971,False,False,Hüfferstr. 27,48149,Münster,https://www.fh-muenster.de/index.php,51.96387185,7.602694380666238 +Münster KuAk,"Kunstakademie Münster, Hochschule für Bildende Künste",Künstlerische Hochschulen,öffentlich-rechtlich,Nordrhein-Westfalen,375,1971,True,True,Leonardo-Campus 2,48149,Münster,https://www.kunstakademie-muenster.de/hochschule/organisation-und-verwaltung,51.96387185,7.602694380666238 +Münster PhThH,Philosophisch-Theologische Hochschule Münster - Kirchlich und staatlich anerkannte Hochschule in Trägerschaft der PTH Philosophisch-Theologische Hochschule Münster gemeinnützige GmbH,Universitäten,"kirchlich, staatlich anerkannt",Nordrhein-Westfalen,7,1971,False,False,Kapuzinerstr. 27,48149,Münster,http://www.pth-muenster.de,51.96387185,7.602694380666238 +Münster U,Universität Münster,Universitäten,öffentlich-rechtlich,Nordrhein-Westfalen,42458,1780,True,True,Schlossplatz 2,48149,Münster,https://www.uni-muenster.de,51.96387185,7.602694380666238 +Neubrandenburg H,Hochschule Neubrandenburg - University of Applied Sciences,Fachhochschulen / HAW,öffentlich-rechtlich,Mecklenburg-Vorpommern,2082,1991,False,False,Brodaer Straße 2,17033,Neubrandenburg,http://www.hs-nb.de,53.531625500000004,13.259116046417208 +Neuendettelsau KiH,Augustana-Hochschule Neuendettelsau,Universitäten,"kirchlich, staatlich anerkannt",Bayern,97,1947,True,True,Waldstraße 11,91564,Neuendettelsau,http://www.augustana.de,49.2861165,10.803698974086819 +Neuruppin MHB,Medizinische Hochschule Brandenburg Theodor Fontane,Universitäten,"privat, staatlich anerkannt",Brandenburg,819,2014,False,False,Fehrbelliner Str. 38,16816,Neuruppin,http://www.mhb-fontane.de,52.917682150000005,12.776455279758906 +Neu-Ulm H,Hochschule für angewandte Wissenschaften Neu-Ulm,Fachhochschulen / HAW,öffentlich-rechtlich,Bayern,4077,1994,False,False,Wileystraße 1,89231,Neu-Ulm,https://www.hnu.de,48.3778145,10.000127036948559 +Niederrhein H,Hochschule Niederrhein,Fachhochschulen / HAW,öffentlich-rechtlich,Nordrhein-Westfalen,13179,1971,False,False,Reinarzstraße 49,47805,Krefeld,http://www.hs-niederrhein.de,51.317658800000004,6.563564602912973 +Niedersachsen HVerw (Verw),Kommunale Hochschule für Verwaltung in Niedersachsen,Verwaltungshochschule,öffentlich-rechtlich,Niedersachsen,1561,2007,False,False,Wielandstraße 8,30169,Hannover,http://www.nsi-hsvn.de/,52.36500325,9.734566995761206 +Nordhausen H,Hochschule Nordhausen,Fachhochschulen / HAW,öffentlich-rechtlich,Thüringen,2035,1997,False,False,Weinberghof 4,99734,Nordhausen,http://www.hs-nordhausen.de,51.497986749999995,10.803268318899804 +Nordhessen FH,DIPLOMA Hochschule - Private Fachhochschule Nordhessen,Fachhochschulen / HAW,"privat, staatlich anerkannt",Hessen,7775,1997,False,False,Am Hegeberg 2,37242,Bad Sooden-Allendorf,http://www.diploma.de,51.275247449999995,9.966432752208682 +Nordrhein-Westfalen DHPol (Verw),Deutsche Hochschule der Polizei,Verwaltungshochschule,öffentlich-rechtlich,Nordrhein-Westfalen,434,2008,True,False,Zum Roten Berge 18,48165,Münster,https://www.dhpol.de,51.8982648,7.65038201339706 +Nordrhein-Westfalen FHRecht (Verw),Fachhochschule für Rechtspflege Nordrhein-Westfalen,Verwaltungshochschule,öffentlich-rechtlich,Nordrhein-Westfalen,887,1976,False,False,Schleidtalstraße 3,53902,Bad Münstereifel,https://www.fhr.nrw.de/,50.53145875,6.814256710554267 +Nordrhein-Westfalen HFinanz (Verw),Hochschule für Finanzen NRW,Verwaltungshochschule,öffentlich-rechtlich,Nordrhein-Westfalen,2795,1976,False,False,Schloßstraße,59394,Nordkirchen,https://www.finanzverwaltung.nrw.de/de/duales-studium-der-hsf-nrw,51.7300377,7.553991610201027 +Nordrhein-Westfalen HSPV (Verw),Hochschule für Polizei und öffentliche Verwaltung Nordrhein-Westfalen,Verwaltungshochschule,öffentlich-rechtlich,Nordrhein-Westfalen,13078,1976,False,False,Haidekamp 73,45886,Gelsenkirchen,https://www.hspv.nrw.de/,51.4980385,7.119724878010753 +Nordrhein-Westfalen KathH,Katholische Hochschule Nordrhein-Westfalen - Catholic University of Applied Sciences,Fachhochschulen / HAW,"kirchlich, staatlich anerkannt",Nordrhein-Westfalen,5440,1971,False,False,Wörthstraße 10,50668,Köln,http://www.katho-nrw.de,50.950473099999996,6.962944576674442 +Nordrhein-Westfalen SRH,SRH Hochschule in Nordrhein-Westfalen,Fachhochschulen / HAW,"privat, staatlich anerkannt",Nordrhein-Westfalen,740,2005,False,False,Platz der Deutschen Einheit 1,59065,Hamm,https://www.srh-hochschule-nrw.de/?utm_source=wkz-HA91531IM,51.6884286,7.809116231076063 +Nürnberg AkdBK,Akademie der Bildenden Künste Nürnberg,Künstlerische Hochschulen,öffentlich-rechtlich,Bayern,310,1662,False,False,Bingstraße 60,90480,Nürnberg,http://www.adbk-nuernberg.de,49.4428707,11.123207082971799 +Nürnberg EvH,Evangelische Hochschule für angewandte Wissenschaften - Evangelische Fachhochschule Nürnberg,Fachhochschulen / HAW,"kirchlich, staatlich anerkannt",Bayern,1211,1927,False,False,Bärenschanzstraße 4,90429,Nürnberg,http://www.evhn.de/,49.4570659,11.042453979908913 +Nürnberg HfM,Hochschule für Musik Nürnberg,Künstlerische Hochschulen,öffentlich-rechtlich,Bayern,333,2008,True,False,Veilhofstraße 34,90489,Nürnberg,http://www.hfm-nuernberg.de,49.4591347,11.09870538750349 +Nürnberg TH,Technische Hochschule Nürnberg Georg Simon Ohm,Fachhochschulen / HAW,öffentlich-rechtlich,Bayern,12355,1823,False,False,Keßlerplatz 12,90489,Nürnberg,https://www.th-nuernberg.de/,49.4591347,11.09870538750349 +Nürnberg TU,Technische Universität Nürnberg,Universitäten,öffentlich-rechtlich,Bayern,18,2021,True,False,Ulmenstraße 52i,90443,Nürnberg,https://www.utn.de/,49.4380654,11.068411970594418 +Nürtingen-Geislingen H,Hochschule für Wirtschaft und Umwelt Nürtingen-Geislingen,Fachhochschulen / HAW,öffentlich-rechtlich,Baden-Württemberg,5066,1949,False,False,Neckarsteige 6-10,72622,Nürtingen,http://www.hfwu.de,48.61646925,9.352172477509349 +Oberursel LuthThH,Lutherische Theologische Hochschule Oberursel,Universitäten,"kirchlich, staatlich anerkannt",Hessen,17,1947,False,False,Altkönigstraße 150,61440,Oberursel,http://www.lthh-oberursel.de,50.2062659,8.57015217875598 +Offenbach HfGest,Hochschule für Gestaltung Offenbach,Künstlerische Hochschulen,öffentlich-rechtlich,Hessen,795,1970,True,False,Schloßstraße 31,63065,Offenbach,http://www.hfg-offenbach.de,50.1057262,8.767810376578506 +Offenburg H,"Hochschule für Technik, Wirtschaft und Medien Offenburg",Fachhochschulen / HAW,öffentlich-rechtlich,Baden-Württemberg,3761,1964,False,False,Badstraße 24,77652,Offenburg,http://www.hs-offenburg.de,48.500275099999996,7.942647433832192 +Oldenburg U,Carl von Ossietzky Universität Oldenburg,Universitäten,öffentlich-rechtlich,Niedersachsen,15335,1973,True,True,Ammerländer Heerstraße 114-118,26129,Oldenburg,http://www.uol.de,53.15301635,8.173535630553658 +Osnabrück H,Hochschule Osnabrück,Fachhochschulen / HAW,öffentlich-rechtlich,Niedersachsen,13317,1971,False,False,Albrechtstraße 30,49076,Osnabrück,http://www.hs-osnabrueck.de,52.28930855,7.969926121292211 +Osnabrück U,Universität Osnabrück,Universitäten,öffentlich-rechtlich,Niedersachsen,13487,1973,True,True,Neuer Graben/Schloss,49074,Osnabrück,http://www.uni-osnabrueck.de,52.2760322,8.05208487298606 +Ostfalia H,"Hochschule Braunschweig/Wolfenbüttel, Ostfalia Hochschule für angewandte Wissenschaften",Fachhochschulen / HAW,öffentlich-rechtlich,Niedersachsen,10775,1971,False,False,Salzdahlumer Straße 46/48,38302,Wolfenbüttel,http://www.ostfalia.de,52.191531749999996,10.569176510909724 +Ostwestfalen-Lippe TH,Technische Hochschule Ostwestfalen-Lippe,Fachhochschulen / HAW,öffentlich-rechtlich,Nordrhein-Westfalen,5960,1971,False,False,Campusallee 12,32657,Lemgo,http://www.th-owl.de,52.040161499999996,8.892708595970877 +Ottersberg H,"Hochschule für Künste im Sozialen, Ottersberg",Fachhochschulen / HAW,"privat, staatlich anerkannt",Niedersachsen,325,1967,False,False,Große Straße 107,28870,Ottersberg,https://www.hks-ottersberg.de,53.100179,9.014025929988986 +Paderborn FHDW,Fachhochschule der Wirtschaft,Fachhochschulen / HAW,"privat, staatlich anerkannt",Nordrhein-Westfalen,2021,1993,False,False,Fürstenallee 5,33102,Paderborn,https://www.fhdw.de,51.7348667,8.743534708720818 +Paderborn ThFak,Theologische Fakultät Paderborn,Universitäten,"kirchlich, staatlich anerkannt",Nordrhein-Westfalen,60,1614,True,True,Kamp 6,33098,Paderborn,http://www.thf-paderborn.de/,51.70954235,8.74999759222395 +Paderborn U,Universität Paderborn,Universitäten,öffentlich-rechtlich,Nordrhein-Westfalen,17228,1972,True,True,Warburger Straße 100,33098,Paderborn,http://www.uni-paderborn.de,51.70954235,8.74999759222395 +Passau U,Universität Passau,Universitäten,öffentlich-rechtlich,Bayern,10881,1973,True,True,Innstraße 41,94032,Passau,http://www.uni-passau.de,48.5673568,13.46219558408719 +Pforzheim H,"Hochschule Pforzheim - Gestaltung, Technik, Wirtschaft und Recht",Fachhochschulen / HAW,öffentlich-rechtlich,Baden-Württemberg,5659,1877,False,False,Tiefenbronner Straße 65,75175,Pforzheim,http://www.hs-pforzheim.de/,48.8852041,8.712344325030168 +Potsdam-Babelsberg FilmU,Filmuniversität Babelsberg Konrad Wolf,Künstlerische Hochschulen,öffentlich-rechtlich,Brandenburg,947,1954,True,False,Marlene-Dietrich-Allee 11,14482,Potsdam,https://www.filmuniversitaet.de/,52.3922047,13.108012731196634 +Potsdam CHP,Hochschule Clara Hoffbauer (HCHP) - University of Applied Sciences,Fachhochschulen / HAW,"privat, staatlich anerkannt",Brandenburg,119,2016,False,False,Hermannswerder 7,14473,Potsdam,https://hchp.de/,52.3707598,13.05225365455202 +Potsdam FH,Fachhochschule Potsdam,Fachhochschulen / HAW,öffentlich-rechtlich,Brandenburg,3730,1991,False,False,Kiepenheuerallee 5,14469,Potsdam,https://www.fh-potsdam.de,52.423077899999996,13.037531156029615 +Potsdam FHSport,Fachhochschule für Sport und Management Potsdam,Fachhochschulen / HAW,"privat, staatlich anerkannt",Brandenburg,553,2009,False,False,Olympischer Weg 7,14471,Potsdam,www.fhsmp.de,52.3785892,13.001260142355731 +Potsdam GISMA,Gisma University of Applied Sciences,Fachhochschulen / HAW,"privat, staatlich anerkannt",Brandenburg,834,2020,False,False,Konrad-Zuse-Ring 11,14469,Potsdam,https://www.gisma.com,52.423077899999996,13.037531156029615 +Potsdam GU,GU Deutsche Hochschule für Angewandte Wissenschaften - German University of Applied Sciences,Fachhochschulen / HAW,"privat, staatlich anerkannt",Brandenburg,50,2022,False,False,Jägerallee 26,14469,Potsdam,https://gu-hochschule.de/,52.423077899999996,13.037531156029615 +Potsdam HSD,HSD Hochschule Döpfer,Fachhochschulen / HAW,"privat, staatlich anerkannt",Brandenburg,1405,2013,False,False,Tuchmacherstraße 48b,14482,Potsdam,https://www.hs-doepfer.de/,52.3922047,13.108012731196634 +Potsdam U,Universität Potsdam,Universitäten,öffentlich-rechtlich,Brandenburg,20401,1991,True,True,Am Neuen Palais 10,14469,Potsdam,http://www.uni-potsdam.de,52.423077899999996,13.037531156029615 +Potsdam UE,University of Europe for Applied Sciences,Fachhochschulen / HAW,"privat, staatlich anerkannt",Brandenburg,4787,2000,False,False,Konrad-Zuse-Ring 11,14469,Potsdam,https://www.ue-germany.com/,52.423077899999996,13.037531156029615 +Potsdam XU,XU Exponential University of Applied Sciences,Fachhochschulen / HAW,"privat, staatlich anerkannt",Brandenburg,176,2018,False,False,August-Bebel-Straße 26-53,14482,Potsdam,https://xu-university.com,52.3922047,13.108012731196634 +Ravensburg-Weingarten H,Hochschule Ravensburg-Weingarten,Fachhochschulen / HAW,öffentlich-rechtlich,Baden-Württemberg,3448,1964,False,False,Doggenriedstraße 70,88250,Weingarten,http://www.rwu.de,47.80484995,9.640100368299736 +Regensburg HfKiM,Hochschule für Katholische Kirchenmusik und Musikpädagogik,Künstlerische Hochschulen,"kirchlich, staatlich anerkannt",Bayern,121,2001,False,False,Andreasstraße 9,93059,Regensburg,http://www.hfkm-regensburg.de,49.03514815,12.098039502678724 +Regensburg OTH,Ostbayerische Technische Hochschule Regensburg,Fachhochschulen / HAW,öffentlich-rechtlich,Bayern,10704,1971,False,False,Seybothstraße 2,93053,Regensburg,http://www.oth-regensburg.de,48.98942365,12.094578451704546 +Regensburg U,Universität Regensburg,Universitäten,öffentlich-rechtlich,Bayern,20353,1962,True,True,Universitätsstraße 31,93053,Regensburg,https://www.uni-regensburg.de,48.98942365,12.094578451704546 +Reutlingen HTWID,"Hochschule Reutlingen, Hochschule für Technik- Wirtschaft-Informatik-Design",Fachhochschulen / HAW,öffentlich-rechtlich,Baden-Württemberg,4933,1855,False,False,Alteburgstraße 150,72762,Reutlingen,http://www.reutlingen-university.de/,48.4795328,9.19287955478297 +Reutlingen ThH,Theologische Hochschule Reutlingen - staatlich anerkannte Fachhochschule der Evangelisch-methodistischen Kirche,Fachhochschulen / HAW,"kirchlich, staatlich anerkannt",Baden-Württemberg,105,1877,False,False,Friedrich-Ebert-Straße 31,72762,Reutlingen,http://www.th-reutlingen.de,48.4795328,9.19287955478297 +Rheinland-Pfalz HVerw (Verw),Hochschule für öffentliche Verwaltung Rheinland-Pfalz,Verwaltungshochschule,öffentlich-rechtlich,Rheinland-Pfalz,912,1981,False,False,St.-Veit-Straße 26-28,56727,Mayen,https://hoev-rlp.de/de/ueber-die-hochschule/kontakt/,50.321954,7.202836119781388 +RheinMain H,Hochschule RheinMain,Fachhochschulen / HAW,öffentlich-rechtlich,Hessen,12945,1971,True,False,Kurt-Schumacher-Ring 18,65197,Wiesbaden,https://www.hs-rm.de/de/,50.0803522,8.212063831157877 +Rhein-Waal H,Hochschule Rhein-Waal - University of Applied Sciences,Fachhochschulen / HAW,öffentlich-rechtlich,Nordrhein-Westfalen,6465,2009,False,False,Marie-Curie-Str. 1,47533,Kleve,http://www.hochschule-rhein-waal.de/,51.79869275,6.1449935248722 +Riedlingen SRH,SRH Fernhochschule - The Mobile University,Fachhochschulen / HAW,"privat, staatlich anerkannt",Baden-Württemberg,8746,1996,False,False,Kirchstraße 26,88499,Riedlingen,https://www.mobile-university.de,48.1721204,9.441522456790569 +Rosenheim TH,Technische Hochschule Rosenheim,Fachhochschulen / HAW,öffentlich-rechtlich,Bayern,6648,1971,False,False,Hochschulstraße 1,83024,Rosenheim,http://www.th-rosenheim.de/,47.8692191,12.11228097391248 +Rostock HMT,Hochschule für Musik und Theater Rostock,Künstlerische Hochschulen,öffentlich-rechtlich,Mecklenburg-Vorpommern,567,1994,True,True,Beim St.-Katharinenstift 8,18055,Rostock,http://www.hmt-rostock.de,54.08597785,12.16226994386194 +Rostock U,Universität Rostock,Universitäten,öffentlich-rechtlich,Mecklenburg-Vorpommern,12678,1419,True,True,Universitätsplatz 1,18055,Rostock,http://www.uni-rostock.de,54.08597785,12.16226994386194 +Rottenburg H,Hochschule für Forstwirtschaft Rottenburg,Fachhochschulen / HAW,öffentlich-rechtlich,Baden-Württemberg,941,1954,False,False,Schadenweilerhof,72108,Rottenburg,http://www.hs-rottenburg.net,48.46967965,8.934589874858336 +Rottenburg HfKiM,Hochschule für Kirchenmusik der Diözese Rottenburg-Stuttgart,Künstlerische Hochschulen,"kirchlich, staatlich anerkannt",Baden-Württemberg,19,1949,False,False,St.-Meinrad-Weg 6,72108,Rottenburg,www.kirchenmusik-hochschule.org,48.46967965,8.934589874858336 +Ruhr West H,Hochschule Ruhr West- University of Applied Sciences,Fachhochschulen / HAW,öffentlich-rechtlich,Nordrhein-Westfalen,5999,2009,False,False,Duisburger Straße 100,45479,Mülheim,http://www.hochschule-ruhr-west.de,51.40880395,6.834513263004888 +Saarbrücken DHfPG,Deutsche Hochschule für Prävention und Gesundheitsmanagement GmbH,Fachhochschulen / HAW,"privat, staatlich anerkannt",Saarland,7133,2001,False,False,Hermann-Neuberger-Straße 3,66123,Saarbrücken,http://www.dhfpg.de,49.247765400000006,7.023153706790728 +Saarbrücken HfM,Hochschule für Musik Saar,Künstlerische Hochschulen,öffentlich-rechtlich,Saarland,501,1947,True,False,Bismarckstraße 1,66111,Saarbrücken,www.hfmsaar.de,49.23601225,6.999016026616037 +Saarbrücken HTW,Hochschule für Technik und Wirtschaft des Saarlandes,Fachhochschulen / HAW,öffentlich-rechtlich,Saarland,5942,1971,False,False,Goebenstraße 40,66117,Saarbrücken,http://www.htwsaar.de,49.22000465,6.96041256043042 +Saarbrücken U,Universität des Saarlandes,Universitäten,öffentlich-rechtlich,Saarland,15949,1948,True,True,Campus,66123,Saarbrücken,https://www.uni-saarland.de,49.247765400000006,7.023153706790728 +Saar HBK,Hochschule der Bildenden Künste Saar,Künstlerische Hochschulen,öffentlich-rechtlich,Saarland,434,1989,True,False,Keplerstraße 3-5,66117,Saarbrücken,https://www.hbksaar.de,49.22000465,6.96041256043042 +Saarland FHVerw (Verw),Fachhochschule der Verwaltung des Saarlandes,Verwaltungshochschule,öffentlich-rechtlich,Saarland,802,1980,False,False,Am Campus 7,66287,Quierschied,https://www.saarland.de/fhsv/DE/home/home_node.html,49.3179346,7.027610762410786 +Sachsen-Anhalt FHPol (Verw),Fachhochschule Polizei Sachsen-Anhalt,Verwaltungshochschule,öffentlich-rechtlich,Sachsen-Anhalt,705,1997,False,False,Schmidtmannstraße 86,06449,Aschersleben,https://fh-polizei.sachsen-anhalt.de/fachhochschule,51.7810358,11.487492563053523 +Sachsen HPol (Verw),Hochschule der Sächsischen Polizei (FH),Verwaltungshochschule,öffentlich-rechtlich,Sachsen,640,1994,False,False,Friedensstraße 120,02929,Rothenburg,https://www.polizei.sachsen.de/de/polfh.htm,51.355771399999995,14.940201595800776 +Sachsen HVerw (VerwH),"Hochschule für öffentliche Verwaltung und Rechtspflege (FH), Fortbildungszentrum des Freistaates Sachsen (HSF)",Verwaltungshochschule,öffentlich-rechtlich,Sachsen,1035,1992,False,False,Herbert-Böhme-Straße 11,01662,Meißen,https://www.hsf.sachsen.de/,51.16154035,13.483859618085557 +Schleswig-Holstein DHSH,Duale Hochschule Schleswig-Holstein - staatlich anerkannte Hochschule für angewandte Wissenschaften in Trägerschaft der Wirtschaftsakademie Schleswig-Holstein,Fachhochschulen / HAW,"privat, staatlich anerkannt",Schleswig-Holstein,512,2018,False,False,Hans-Detlev-Prien-Straße 10,24106,Kiel,https://www.dhsh.de,54.3602667,10.121942077093598 +Schleswig-Holstein FHVD (Verw),Fachhochschule für Verwaltung und Dienstleistung in Schleswig-Holstein,Verwaltungshochschule,öffentlich-rechtlich,Schleswig-Holstein,1716,1975,False,False,Rehmkamp 10,24161,Altenholz,https://www.fhvd-sh.de/hochschule/fhvd/,54.3926115,10.108744608826033 +Schmalkalden H,Hochschule Schmalkalden,Fachhochschulen / HAW,öffentlich-rechtlich,Thüringen,2564,1991,False,False,Blechhammer 9,98574,Schmalkalden,http://www.hs-schmalkalden.de,50.71707565,10.414783450771182 +Schwäbisch Gmünd HGest,Hochschule für Gestaltung Schwäbisch Gmünd,Fachhochschulen / HAW,öffentlich-rechtlich,Baden-Württemberg,678,1909,False,False,Rektor-Klaus-Str. 100,73525,Schwäbisch Gmünd,http://www.hfg-gmuend.de,48.79457789999999,9.803104689063886 +Schwäbisch Gmünd PH,Pädagogische Hochschule Schwäbisch Gmünd,Universitäten,öffentlich-rechtlich,Baden-Württemberg,2780,1962,True,True,Oberbettringer Str. 200,73525,Schwäbisch Gmünd,https://www.ph-gmuend.de,48.79457789999999,9.803104689063886 +Siegen U,Universität Siegen,Universitäten,öffentlich-rechtlich,Nordrhein-Westfalen,15186,1972,True,True,Adolf-Reichwein-Straße 2,57076,Siegen,http://www.uni-siegen.de,50.90239725,8.032872315202471 +Speyer DUV,Deutsche Universität für Verwaltungswissenschaften Speyer,Universitäten,öffentlich-rechtlich,Rheinland-Pfalz,278,1947,True,True,Freiherr-vom-Stein-Straße 2,67346,Speyer,http://www.uni-speyer.de,49.329539600000004,8.42923677890457 +Stralsund H,Hochschule Stralsund,Fachhochschulen / HAW,öffentlich-rechtlich,Mecklenburg-Vorpommern,2268,1991,False,False,Zur Schwedenschanze 15,18435,Stralsund,www.hochschule-stralsund.de,54.32997,13.064996110965268 +Stuttgart AKAD,AKAD Hochschule Stuttgart - staatlich anerkannt,Fachhochschulen / HAW,"privat, staatlich anerkannt",Baden-Württemberg,6370,1959,False,False,Heilbronner Str. 86,70191,Stuttgart,https://www.akad.de/?wkz=7007AA,48.798732650000005,9.189108225718751 +Stuttgart AkdBK,Staatliche Akademie der Bildenden Künste Stuttgart,Künstlerische Hochschulen,öffentlich-rechtlich,Baden-Württemberg,801,1761,True,True,Am Weißenhof 1,70191,Stuttgart,http://www.abk-stuttgart.de,48.798732650000005,9.189108225718751 +Stuttgart DH,Duale Hochschule Baden-Württemberg,Hochschulen eigenen Typs,öffentlich-rechtlich,Baden-Württemberg,32647,2009,False,False,Friedrichstraße 14.,70174,Stuttgart,http://www.dhbw.de,48.782079249999995,9.171410041022973 +Stuttgart H,Hochschule für Technik Stuttgart,Fachhochschulen / HAW,öffentlich-rechtlich,Baden-Württemberg,3945,1832,False,False,Schellingstraße 24,70174,Stuttgart,http://www.hft-stuttgart.de,48.782079249999995,9.171410041022973 +Stuttgart HdM,Hochschule der Medien Stuttgart,Fachhochschulen / HAW,öffentlich-rechtlich,Baden-Württemberg,5513,1903,False,False,Nobelstraße 10,70569,Stuttgart,http://www.hdm-stuttgart.de,48.744592,9.089116792062732 +Stuttgart HfK+G,Hochschule für Kommunikation und Gestaltung,Fachhochschulen / HAW,"privat, staatlich anerkannt",Baden-Württemberg,59,2013,False,False,Kölner Straße 38,70376,Stuttgart,www.hfk-bw.de,48.81839295,9.206686445623081 +Stuttgart HfM,Staatliche Hochschule für Musik und Darstellende Kunst Stuttgart,Künstlerische Hochschulen,öffentlich-rechtlich,Baden-Württemberg,757,1857,True,False,Urbanstraße 25,70182,Stuttgart,http://www.hmdk-stuttgart.de,48.776785849999996,9.187350759111151 +Stuttgart MAW,Hochschule Macromedia - staatlich anerkannte Hochschule für angewandte Wissenschaften der Macromedia GmbH mit Sitz in Stuttgart,Fachhochschulen / HAW,"privat, staatlich anerkannt",Baden-Württemberg,5190,2006,False,False,Naststraße 11/Im Römerkastell,70376,Stuttgart,http://www.macromedia-fachhochschule.de/,48.81839295,9.206686445623081 +Stuttgart MediaAk,media Akademie - Hochschule Stuttgart,Fachhochschulen / HAW,"privat, staatlich anerkannt",Baden-Württemberg,13,2015,False,False,Tübinger Str. 12-16,70178,Stuttgart,www.media-hs.de,48.7683505,9.166504301173134 +Stuttgart MerzAk,"Merz Akademie Hochschule für Gestaltung, Kunst und Medien, Stuttgart - Staatlich anerkannt",Fachhochschulen / HAW,"privat, staatlich anerkannt",Baden-Württemberg,208,1985,False,False,Teckstraße 58,70190,Stuttgart,http://www.merz-akademie.de,48.7900887,9.20199254683786 +Stuttgart U,Universität Stuttgart,Universitäten,öffentlich-rechtlich,Baden-Württemberg,21141,1829,True,True,Keplerstraße 7,70174,Stuttgart,http://www.uni-stuttgart.de,48.782079249999995,9.171410041022973 +Stuttgart U Waldorf,Freie Hochschule Stuttgart - Seminar für Waldorfpädagogik. Staatlich anerkannte wissenschaftliche Hochschule.,Universitäten,"privat, staatlich anerkannt",Baden-Württemberg,304,1919,False,False,Haußmannstraße 44a,70188,Stuttgart,http://www.freie-hochschule-stuttgart.de,48.7861393,9.215098631678654 +Stuttgart VWA,VWA-Hochschule für berufsbegleitendes Studium,Fachhochschulen / HAW,"privat, staatlich anerkannt",Baden-Württemberg,33,2013,False,False,Wolframstraße 32,70191,Stuttgart,https://www.vwa-hochschule.de,48.798732650000005,9.189108225718751 +Südwestfalen FH,Fachhochschule Südwestfalen,Fachhochschulen / HAW,öffentlich-rechtlich,Nordrhein-Westfalen,10995,2002,False,False,Baarstraße 6,58636,Iserlohn,https://www.fh-swf.de,51.38983915,7.721685003745058 +Thüringen VerwH (Verw),Thüringer Fachhochschule für öffentliche Verwaltung,Verwaltungshochschule,öffentlich-rechtlich,Thüringen,641,1994,False,False,Bahnhofstraße 12,99867,Gotha,https://bildungszentrum.thueringen.de/thueringer-fachhochschule-fuer-oeffentliche-verwaltung,50.94131915,10.70838373100138 +Trier H,Hochschule Trier - Trier University of Applied Sciences,Fachhochschulen / HAW,öffentlich-rechtlich,Rheinland-Pfalz,6688,1971,False,False,Schneidershof,54293,Trier,http://www.hochschule-trier.de/,49.80529835,6.682314675362319 +Trier ThFak,Theologische Fakultät Trier,Universitäten,"kirchlich, staatlich anerkannt",Rheinland-Pfalz,150,1950,True,True,Universitätsring 19,54296,Trier,https://theologie-trier.de/,49.733987850000005,6.682342110333119 +Trier U,Universität Trier,Universitäten,öffentlich-rechtlich,Rheinland-Pfalz,10518,1970,True,True,Universitätsring 15,54296,Trier,http://www.uni-trier.de,49.733987850000005,6.682342110333119 +Trossingen HfM,Staatliche Hochschule für Musik Trossingen,Künstlerische Hochschulen,öffentlich-rechtlich,Baden-Württemberg,419,1944,True,False,Schultheiß-Koch-Platz 3,78647,Trossingen,https://www.hfm-trossingen.de,48.0715517,8.637384527787532 +Tübingen HfKiM,Hochschule für Kirchenmusik der Evangelischen Landeskirche in Württemberg,Künstlerische Hochschulen,"kirchlich, staatlich anerkannt",Baden-Württemberg,19,1945,False,False,Gartenstraße 12,72074,Tübingen,http://www.kirchenmusikhochschule.de,48.55576565,9.092406281009229 +Tübingen U,Eberhard Karls Universität Tübingen,Universitäten,öffentlich-rechtlich,Baden-Württemberg,28239,1477,True,True,Geschwister-Scholl-Platz,72074,Tübingen,http://www.uni-tuebingen.de,48.55576565,9.092406281009229 +Ulm TH,Technische Hochschule Ulm,Fachhochschulen / HAW,öffentlich-rechtlich,Baden-Württemberg,2966,1960,False,False,Prittwitzstraße 10,89075,Ulm,http://www.thu.de,48.4194165,10.007672310709742 +Ulm U,Universität Ulm,Universitäten,öffentlich-rechtlich,Baden-Württemberg,9978,1967,True,True,Albert-Einstein-Allee 11,89081,Ulm,http://www.uni-ulm.de,48.43936165,9.971446987171708 +Vallendar VP-Uni,Vinzenz Pallotti University - kirchlich und staatlich anerkannte wissenschaftliche Hochschule in freier Trägerschaft,Universitäten,"kirchlich, staatlich anerkannt",Rheinland-Pfalz,254,1896,True,True,Pallottistraße 3,56179,Vallendar,https://vp-uni.de/,50.405619349999995,7.643884262188641 +Vallendar WHU,WHU - Otto Beisheim School of Management,Universitäten,"privat, staatlich anerkannt",Rheinland-Pfalz,1961,1984,True,True,Burgplatz 2,56179,Vallendar,http://www.whu.edu,50.405619349999995,7.643884262188641 +Vechta/Diepholz PHWT,Private Hochschule für Wirtschaft und Technik Vechta/Diepholz,Fachhochschulen / HAW,"privat, staatlich anerkannt",Niedersachsen,517,1998,False,False,Rombergstraße 40,49377,Vechta,https://www.phwt.de,52.743725,8.290336248856054 +Vechta U,Universität Vechta,Universitäten,öffentlich-rechtlich,Niedersachsen,3714,1995,True,True,Driverstraße 22,49377,Vechta,http://www.uni-vechta.de,52.743725,8.290336248856054 +Wedel FH,Fachhochschule Wedel,Fachhochschulen / HAW,"privat, staatlich anerkannt",Schleswig-Holstein,1128,1948,False,False,Feldstraße 143,22880,Wedel,http://www.fh-wedel.de,53.588184749999996,9.693906230614932 +Weihenstephan-Triesdorf H,Hochschule für angewandte Wissenschaften Weihenstephan-Triesdorf,Fachhochschulen / HAW,öffentlich-rechtlich,Bayern,5692,1971,False,False,Am Hofgarten 4,85354,Freising,https://www.hswt.de/,48.38981975,11.693689641017325 +Weimar HfM,Hochschule für Musik Franz Liszt Weimar,Künstlerische Hochschulen,öffentlich-rechtlich,Thüringen,752,1872,True,False,Platz der Demokratie 2/3,99423,Weimar,http://www.hfm-weimar.de,50.981060150000005,11.3213362634799 +Weimar U,Bauhaus-Universität Weimar,Universitäten,öffentlich-rechtlich,Thüringen,3955,1860,True,True,Geschwister-Scholl-Straße 8,99423,Weimar,http://www.uni-weimar.de/studium,50.981060150000005,11.3213362634799 +Weingarten PH,Pädagogische Hochschule Weingarten,Universitäten,öffentlich-rechtlich,Baden-Württemberg,3307,1949,True,True,Kirchplatz 2,88250,Weingarten,https://www.ph-weingarten.de/die-ph-weingarten/,47.80484995,9.640100368299736 +Weserbergland H,Hochschule Weserbergland,Fachhochschulen / HAW,"privat, staatlich anerkannt",Niedersachsen,443,2010,False,False,Am Stockhof 2,31785,Hameln,https://www.hsw-hameln.de,52.1054558,9.362558183546257 +Westfälische H,"Westfälische Hochschule Gelsenkirchen, Bocholt, Recklinghausen",Fachhochschulen / HAW,öffentlich-rechtlich,Nordrhein-Westfalen,7620,1992,False,False,Neidenburger Straße 43,45897,Gelsenkirchen,http://www.w-hs.de,51.55455105,7.053647801467427 +Westküste FH,"Fachhochschule Westküste, Hochschule für Wirtschaft und Technik",Fachhochschulen / HAW,öffentlich-rechtlich,Schleswig-Holstein,1572,1994,False,False,Fritz-Thiedemann-Ring 20,25746,Heide,http://www.fh-westkueste.de,54.202429550000005,9.103543562903297 +Wiesbaden CFH,Charlotte Fresenius Hochschule,Universitäten,"privat, staatlich anerkannt",Hessen,575,2021,False,False,Moritzstr. 17a,65185,Wiesbaden,https://www.charlotte-fresenius-uni.de/?crmid=aBbWvOcHiAaAaAaA,50.07544145,8.240990075528426 +Wiesbaden EBS,EBS Universität für Wirtschaft und Recht,Universitäten,"privat, staatlich anerkannt",Hessen,1719,1971,True,True,Gustav-Stresemann-Ring 3,65189,Wiesbaden,http://www.ebs.edu,50.07361305,8.260991418149572 +Wildau TH,Technische Hochschule Wildau,Fachhochschulen / HAW,öffentlich-rechtlich,Brandenburg,3357,1991,False,False,Hochschulring 1,15745,Wildau,http://www.th-wildau.de/,52.32392075,13.617176258184438 +Wilhelmshaven/Oldenburg/Elsfleth H,Jade Hochschule - Wilhelmshaven/Oldenburg/Elsfleth,Fachhochschulen / HAW,öffentlich-rechtlich,Niedersachsen,6399,2009,False,False,Friedrich-Paffrath-Straße 101,26389,Wilhelmshaven,http://www.jade-hs.de,53.5320757,8.064643573328507 +Wismar H,"Hochschule Wismar - University of Applied Sciences: Technology, Business and Design",Fachhochschulen / HAW,öffentlich-rechtlich,Mecklenburg-Vorpommern,8048,1908,False,False,Philipp-Müller-Straße 14,23966,Wismar,https://www.hs-wismar.de,53.826798749999995,11.333867385193303 +Witten/ Herdecke U,Private Universität Witten/Herdecke gGmbH,Universitäten,"privat, staatlich anerkannt",Nordrhein-Westfalen,3011,1982,True,True,Alfred-Herrhausen-Str. 50,58448,Witten,https://www.uni-wh.de/,51.4389,7.3359 +Worms H,"Hochschule Worms, University of Applied Sciences",Fachhochschulen / HAW,öffentlich-rechtlich,Rheinland-Pfalz,3391,1996,False,False,Erenburgerstr. 19,67549,Worms,http://www.hs-worms.de,49.637887,8.326535363431617 +Wuppertal KiH,Kirchliche Hochschule Wuppertal,Universitäten,"kirchlich, staatlich anerkannt",Nordrhein-Westfalen,177,1935,True,True,Missionsstraße 9 a/b,42285,Wuppertal,https://www.kiho-wuppertal.de/,51.25786215,7.175665704698492 +Wuppertal U,Bergische Universität Wuppertal,Universitäten,öffentlich-rechtlich,Nordrhein-Westfalen,21289,1972,True,True,Gaußstraße 20,42119,Wuppertal,https://www.uni-wuppertal.de/de/,51.24390085,7.157733558784253 +Würzburg HfM,Hochschule für Musik Würzburg,Künstlerische Hochschulen,öffentlich-rechtlich,Bayern,530,1804,True,False,Hofstallstraße 6-8,97070,Würzburg,http://www.hfm-wuerzburg.de,49.793947349999996,9.935326587151717 +Würzburg-Schweinfurt TH,Technische Hochschule Würzburg-Schweinfurt,Fachhochschulen / HAW,öffentlich-rechtlich,Bayern,9250,1971,False,False,Münzstraße 12,97070,Würzburg,http://www.thws.de,49.793947349999996,9.935326587151717 +Würzburg U,Julius-Maximilians-Universität Würzburg,Universitäten,öffentlich-rechtlich,Bayern,26126,1402,True,True,Sanderring 2,97070,Würzburg,http://www.uni-wuerzburg.de,49.793947349999996,9.935326587151717 +Zittau/ Görlitz H,Hochschule Zittau/Görlitz,Fachhochschulen / HAW,öffentlich-rechtlich,Sachsen,2532,1992,False,False,Theodor-Körner-Allee 16,02763,Zittau,http://www.hszg.de/,50.89548585,14.805850246498313 +Zwickau H,Westsächsische Hochschule Zwickau,Fachhochschulen / HAW,öffentlich-rechtlich,Sachsen,2931,1897,False,False,Kornmarkt 1,08056,Zwickau,http://www.fh-zwickau.de,50.70641405,12.473511544724293 diff --git a/2024_Datenbanksysteme/data/preprocessed/cleaned_mieten.csv b/2024_Datenbanksysteme/data/preprocessed/cleaned_mieten.csv new file mode 100644 index 0000000..84b1854 --- /dev/null +++ b/2024_Datenbanksysteme/data/preprocessed/cleaned_mieten.csv @@ -0,0 +1,17 @@ +land,mieten_ab_2019,mieten_insgesamt +Hamburg,10.9,9.3 +Bayern,9.9,8.7 +Berlin,10.2,8.0 +Baden-Württemberg,9.4,8.2 +Hessen,9.1,8.0 +Bremen,8.1,7.2 +Schleswig-Holstein,8.3,7.5 +Nordrhein-Westfalen,7.8,7.0 +Rheinland-Pfalz,7.5,6.7 +Niedersachsen,7.2,6.5 +Saarland,6.2,5.7 +Mecklenburg-Vorpommern,7.0,6.2 +Brandenburg,7.5,6.5 +Sachsen,6.7,5.9 +Thüringen,6.6,5.9 +Sachsen-Anhalt,6.1,5.6 diff --git a/2024_Datenbanksysteme/data/source/bevoelkerung.csv b/2024_Datenbanksysteme/data/source/bevoelkerung.csv new file mode 100644 index 0000000..606e2f0 --- /dev/null +++ b/2024_Datenbanksysteme/data/source/bevoelkerung.csv @@ -0,0 +1,586 @@ +GENESIS-Tabelle: 12411-01-01-4 +Bevölkerung nach Geschlecht - Stichtag 31.12. - regionale;;;; +Tiefe: Kreise und krfr. Städte;;;; +Fortschreibung des Bevölkerungsstandes;;;; +Bevölkerungsstand (Anzahl);;;; +;;Stichtag;Stichtag;Stichtag +;;31.12.2022;31.12.2022;31.12.2022 +;;Insgesamt;männlich;weiblich +DG;Deutschland;84358845;41559052;42799793 +01; Schleswig-Holstein;2953270;1443269;1510001 +01001; Flensburg, kreisfreie Stadt;92550;45874;46676 +01002; Kiel, kreisfreie Stadt;247717;120149;127568 +01003; Lübeck, kreisfreie Stadt, Hansestadt;218095;104723;113372 +01004; Neumünster, kreisfreie Stadt;79502;39256;40246 +01051; Dithmarschen, Kreis;135252;66561;68691 +01053; Herzogtum Lauenburg, Kreis;203712;99689;104023 +01054; Nordfriesland, Kreis;169043;82669;86374 +01055; Ostholstein, Kreis;203606;97822;105784 +01056; Pinneberg, Kreis;322130;157663;164467 +01057; Plön, Kreis;131266;63357;67909 +01058; Rendsburg-Eckernförde, Kreis;278979;137154;141825 +01059; Schleswig-Flensburg, Kreis;206038;101614;104424 +01060; Segeberg, Kreis;284988;140654;144334 +01061; Steinburg, Kreis;132419;65268;67151 +01062; Stormarn, Kreis;247973;120816;127157 +02; Hamburg;1892122;925616;966506 +03; Niedersachsen;8140242;4009822;4130420 +031; Braunschweig, Statistische Region;1610865;796058;814807 +03101; Braunschweig, kreisfreie Stadt;251804;124770;127034 +03102; Salzgitter, kreisfreie Stadt;104548;51829;52719 +03103; Wolfsburg, kreisfreie Stadt;125961;62441;63520 +03151; Gifhorn, Landkreis;180232;89675;90557 +03152; Göttingen, Landkreis;-;-;- +03153; Goslar, Landkreis;134672;66690;67982 +03154; Helmstedt, Landkreis;92470;45648;46822 +03155; Northeim, Landkreis;133258;65576;67682 +03156; Osterode am Harz, Landkreis;-;-;- +03157; Peine, Landkreis;138931;68750;70181 +03158; Wolfenbüttel, Landkreis;120531;59652;60879 +03159; Göttingen, Landkreis;328458;161027;167431 +032; Hannover, Statistische Region;2180058;1067013;1113045 +03241; Region Hannover, Landkreis;1173891;573513;600378 +03241001; Hannover, Landeshauptstadt;545045;266093;278952 +03251; Diepholz, Landkreis;222816;110415;112401 +03252; Hameln-Pyrmont, Landkreis;150640;72781;77859 +03254; Hildesheim, Landkreis;278371;135757;142614 +03255; Holzminden, Landkreis;70911;35112;35799 +03256; Nienburg (Weser), Landkreis;123469;61060;62409 +03257; Schaumburg, Landkreis;159960;78375;81585 +033; Lüneburg, Statistische Region;1757157;864122;893035 +03351; Celle, Landkreis;181994;89138;92856 +03352; Cuxhaven, Landkreis;201413;98150;103263 +03353; Harburg, Landkreis;261890;128854;133036 +03354; Lüchow-Dannenberg, Landkreis;49178;23981;25197 +03355; Lüneburg, Landkreis;187552;91180;96372 +03356; Osterholz, Landkreis;116551;56813;59738 +03357; Rotenburg (Wümme), Landkreis;167604;83960;83644 +03358; Heidekreis;145394;72697;72697 +03359; Stade, Landkreis;210306;104302;106004 +03360; Uelzen, Landkreis;94362;45906;48456 +03361; Verden, Landkreis;140913;69141;71772 +034; Weser-Ems, Statistische Region;2592162;1282629;1309533 +03401; Delmenhorst, kreisfreie Stadt;78385;38557;39828 +03402; Emden, kreisfreie Stadt;50535;25071;25464 +03403; Oldenburg (Oldenburg), kreisfreie Stadt;172830;82742;90088 +03404; Osnabrück, kreisfreie Stadt;167366;80755;86611 +03405; Wilhelmshaven, kreisfreie Stadt;76089;37268;38821 +03451; Ammerland, Landkreis;128253;62498;65755 +03452; Aurich, Landkreis;192072;94234;97838 +03453; Cloppenburg, Landkreis;177701;89720;87981 +03454; Emsland, Landkreis;338052;171160;166892 +03455; Friesland, Landkreis;100277;48749;51528 +03456; Grafschaft Bentheim, Landkreis;141269;70508;70761 +03457; Leer, Landkreis;174348;86640;87708 +03458; Oldenburg, Landkreis;133913;66240;67673 +03459; Osnabrück, Landkreis;366221;181603;184618 +03460; Vechta, Landkreis;146924;73728;73196 +03461; Wesermarsch, Landkreis;89568;44652;44916 +03462; Wittmund, Landkreis;58359;28504;29855 +04; Bremen;684864;338233;346631 +04011; Bremen, kreisfreie Stadt;569396;280842;288554 +04012; Bremerhaven, kreisfreie Stadt;115468;57391;58077 +05; Nordrhein-Westfalen;18139116;8890200;9248916 +051; Düsseldorf, Regierungsbezirk;5261157;2565963;2695194 +05111; Düsseldorf, kreisfreie Stadt;629047;303510;325537 +05112; Duisburg, kreisfreie Stadt;502211;247892;254319 +05113; Essen, kreisfreie Stadt;584580;284152;300428 +05114; Krefeld, kreisfreie Stadt;228426;111189;117237 +05116; Mönchengladbach, kreisfreie Stadt;268465;132961;135504 +05117; Mülheim an der Ruhr, kreisfreie Stadt;172404;83069;89335 +05119; Oberhausen, kreisfreie Stadt;210824;102910;107914 +05120; Remscheid, kreisfreie Stadt;112613;55709;56904 +05122; Solingen, kreisfreie Stadt;160643;78038;82605 +05124; Wuppertal, kreisfreie Stadt;358876;175788;183088 +05154; Kleve, Kreis;319290;158966;160324 +05158; Mettmann, Kreis;489794;236563;253231 +05162; Rhein-Kreis Neuss;457264;221712;235552 +05166; Viersen, Kreis;300882;146635;154247 +05170; Wesel, Kreis;465838;226869;238969 +053; Köln, Regierungsbezirk;4527594;2216694;2310900 +05314; Bonn, kreisfreie Stadt;336465;160769;175696 +05315; Köln, kreisfreie Stadt;1084831;526588;558243 +05316; Leverkusen, kreisfreie Stadt;165748;80681;85067 +05334; Städteregion Aachen, Kreis;562559;283670;278889 +05334002; Aachen, kreisfreie Stadt;252136;131493;120643 +05354; Aachen, Kreis;-;-;- +05358; Düren, Kreis;270833;134058;136775 +05362; Rhein-Erft-Kreis;478126;232974;245152 +05366; Euskirchen, Kreis;197247;97449;99798 +05370; Heinsberg, Kreis;261833;129489;132344 +05374; Oberbergischer Kreis;275404;135188;140216 +05378; Rheinisch-Bergischer Kreis;286213;138313;147900 +05382; Rhein-Sieg-Kreis;608335;297515;310820 +055; Münster, Regierungsbezirk;2664280;1309671;1354609 +05512; Bottrop, kreisfreie Stadt;118113;57364;60749 +05513; Gelsenkirchen, kreisfreie Stadt;263000;130545;132455 +05515; Münster, kreisfreie Stadt;320946;153935;167011 +05554; Borken, Kreis;379070;189377;189693 +05558; Coesfeld, Kreis;224692;110765;113927 +05562; Recklinghausen, Kreis;619732;301126;318606 +05566; Steinfurt, Kreis;456464;227186;229278 +05570; Warendorf, Kreis;282263;139373;142890 +057; Detmold, Regierungsbezirk;2085331;1028145;1057186 +05711; Bielefeld, kreisfreie Stadt;338332;163149;175183 +05754; Gütersloh, Kreis;371309;184955;186354 +05758; Herford, Kreis;253551;124664;128887 +05762; Höxter, Kreis;141819;70597;71222 +05766; Lippe, Kreis;350588;171767;178821 +05770; Minden-Lübbecke, Kreis;315974;156058;159916 +05774; Paderborn, Kreis;313758;156955;156803 +059; Arnsberg, Regierungsbezirk;3600754;1769727;1831027 +05911; Bochum, kreisfreie Stadt;365742;178377;187365 +05913; Dortmund, kreisfreie Stadt;593317;290847;302470 +05914; Hagen, kreisfreie Stadt;189783;92810;96973 +05915; Hamm, kreisfreie Stadt;180849;89104;91745 +05916; Herne, kreisfreie Stadt;157368;77053;80315 +05954; Ennepe-Ruhr-Kreis;325193;157717;167476 +05958; Hochsauerlandkreis;261647;130454;131193 +05962; Märkischer Kreis;410346;201533;208813 +05966; Olpe, Kreis;134439;67321;67118 +05970; Siegen-Wittgenstein, Kreis;277136;137437;139699 +05974; Soest, Kreis;306068;152175;153893 +05978; Unna, Kreis;398866;194899;203967 +06; Hessen;6391360;3151158;3240202 +064; Darmstadt, Regierungsbezirk;4088107;2013342;2074765 +06411; Darmstadt, kreisfreie Stadt, Wissenschaftsstadt;162243;82530;79713 +06412; Frankfurt am Main, kreisfreie Stadt;773068;380566;392502 +06413; Offenbach am Main, kreisfreie Stadt;134170;66650;67520 +06414; Wiesbaden, kreisfreie Stadt, Landeshauptstadt;283083;135153;147930 +06431; Bergstraße, Landkreis;275205;135926;139279 +06432; Darmstadt-Dieburg, Landkreis;300658;148978;151680 +06433; Groß-Gerau, Landkreis;280308;140349;139959 +06434; Hochtaunuskreis;239488;115782;123706 +06435; Main-Kinzig-Kreis;430838;212330;218508 +06436; Main-Taunus-Kreis;242420;118745;123675 +06437; Odenwaldkreis;97577;48156;49421 +06438; Offenbach, Landkreis;362137;178293;183844 +06439; Rheingau-Taunus-Kreis;189614;92814;96800 +06440; Wetteraukreis;317298;157070;160228 +065; Gießen, Regierungsbezirk;1067354;525963;541391 +06531; Gießen, Landkreis;278664;136879;141785 +06532; Lahn-Dill-Kreis;257289;126692;130597 +06533; Limburg-Weilburg, Landkreis;174884;86675;88209 +06534; Marburg-Biedenkopf, Landkreis;249684;122463;127221 +06535; Vogelsbergkreis;106833;53254;53579 +066; Kassel, Regierungsbezirk;1235899;611853;624046 +06611; Kassel, kreisfreie Stadt, documenta-Stadt;204202;99986;104216 +06631; Fulda, Landkreis;227456;113060;114396 +06632; Hersfeld-Rotenburg, Landkreis;121566;60827;60739 +06633; Kassel, Landkreis;240718;117984;122734 +06634; Schwalm-Eder-Kreis;182595;91370;91225 +06635; Waldeck-Frankenberg, Landkreis;159154;79226;79928 +06636; Werra-Meißner-Kreis;100208;49400;50808 +07; Rheinland-Pfalz;4159150;2054254;2104896 +071; Koblenz, Statistische Region;1522508;751360;771148 +07111; Koblenz, kreisfreie Stadt;115268;56506;58762 +07131; Ahrweiler, Landkreis;128161;63413;64748 +07132; Altenkirchen (Westerwald), Landkreis;131467;64960;66507 +07133; Bad Kreuznach, Landkreis;161307;78730;82577 +07134; Birkenfeld, Landkreis;81760;40508;41252 +07135; Cochem-Zell, Landkreis;62666;31329;31337 +07137; Mayen-Koblenz, Landkreis;218210;107696;110514 +07138; Neuwied, Landkreis;187440;92274;95166 +07140; Rhein-Hunsrück-Kreis;105566;52384;53182 +07141; Rhein-Lahn-Kreis;124381;61390;62991 +07143; Westerwaldkreis;206282;102170;104112 +072; Trier, Statistische Region;546565;272767;273798 +07211; Trier, kreisfreie Stadt;112195;55489;56706 +07231; Bernkastel-Wittlich, Landkreis;115099;57453;57646 +07232; Eifelkreis Bitburg-Prüm;103642;52202;51440 +07233; Vulkaneifel, Landkreis;61769;30928;30841 +07235; Trier-Saarburg, Landkreis;153860;76695;77165 +073; Rheinhessen-Pfalz, Statistische Region;2090077;1030127;1059950 +07311; Frankenthal (Pfalz), kreisfreie Stadt;49051;23923;25128 +07312; Kaiserslautern, kreisfreie Stadt;101228;50948;50280 +07313; Landau in der Pfalz, kreisfreie Stadt;47610;22627;24983 +07314; Ludwigshafen am Rhein, kreisfreie Stadt;174265;87539;86726 +07315; Mainz, kreisfreie Stadt;220552;107358;113194 +07316; Neustadt an der Weinstraße, kreisfreie Stadt;53981;26306;27675 +07317; Pirmasens, kreisfreie Stadt;40682;19921;20761 +07318; Speyer, kreisfreie Stadt;51368;25130;26238 +07319; Worms, kreisfreie Stadt;84646;41957;42689 +07320; Zweibrücken, kreisfreie Stadt;34534;17075;17459 +07331; Alzey-Worms, Landkreis;132536;65697;66839 +07332; Bad Dürkheim, Landkreis;134546;65716;68830 +07333; Donnersbergkreis;76208;37684;38524 +07334; Germersheim, Landkreis;130793;64990;65803 +07335; Kaiserslautern, Landkreis;108216;53113;55103 +07336; Kusel, Landkreis;71462;35694;35768 +07337; Südliche Weinstraße, Landkreis;112631;55379;57252 +07338; Rhein-Pfalz-Kreis;155921;76581;79340 +07339; Mainz-Bingen, Landkreis;214948;105745;109203 +07340; Südwestpfalz, Landkreis;94899;46744;48155 +08; Baden-Württemberg;11280257;5595424;5684833 +081; Stuttgart, Regierungsbezirk;4205849;2093955;2111894 +08111; Stuttgart, Stadtkreis;632865;315634;317231 +08115; Böblingen, Landkreis;398528;197762;200766 +08116; Esslingen, Landkreis;540226;269180;271046 +08117; Göppingen, Landkreis;261857;130139;131718 +08118; Ludwigsburg, Landkreis;551051;272828;278223 +08119; Rems-Murr-Kreis, Landkreis;432397;213396;219001 +08121; Heilbronn, Stadtkreis;128334;64610;63724 +08125; Heilbronn, Landkreis;353283;177094;176189 +08126; Hohenlohekreis, Landkreis;115063;57914;57149 +08127; Schwäbisch Hall, Landkreis;202834;101772;101062 +08128; Main-Tauber-Kreis, Landkreis;134745;67267;67478 +08135; Heidenheim, Landkreis;135035;67292;67743 +08136; Ostalbkreis, Landkreis;319631;159067;160564 +082; Karlsruhe, Regierungsbezirk;2848400;1413296;1435104 +08211; Baden-Baden, Stadtkreis;57025;27240;29785 +08212; Karlsruhe, Stadtkreis;308707;157553;151154 +08215; Karlsruhe, Landkreis;454613;226144;228469 +08216; Rastatt, Landkreis;234981;116683;118298 +08221; Heidelberg, Stadtkreis;162273;77561;84712 +08222; Mannheim, Stadtkreis;315554;157130;158424 +08225; Neckar-Odenwald-Kreis, Landkreis;145493;72949;72544 +08226; Rhein-Neckar-Kreis, Landkreis;555352;272531;282821 +08231; Pforzheim, Stadtkreis;127849;62926;64923 +08235; Calw, Landkreis;162853;81700;81153 +08236; Enzkreis, Landkreis;202536;100318;102218 +08237; Freudenstadt, Landkreis;121164;60561;60603 +083; Freiburg, Regierungsbezirk;2322689;1143714;1178975 +08311; Freiburg im Breisgau, Stadtkreis;236140;112382;123758 +08315; Breisgau-Hochschwarzwald, Landkreis;269948;132897;137051 +08316; Emmendingen, Landkreis;170996;84495;86501 +08317; Ortenaukreis, Landkreis;441885;220341;221544 +08325; Rottweil, Landkreis;142593;71335;71258 +08326; Schwarzwald-Baar-Kreis, Landkreis;217181;107434;109747 +08327; Tuttlingen, Landkreis;144891;72930;71961 +08335; Konstanz, Landkreis;292568;141939;150629 +08336; Lörrach, Landkreis;233027;114220;118807 +08337; Waldshut, Landkreis;173460;85741;87719 +084; Tübingen, Regierungsbezirk;1903319;944459;958860 +08415; Reutlingen, Landkreis;291696;144375;147321 +08416; Tübingen, Landkreis;232803;113022;119781 +08417; Zollernalbkreis, Landkreis;193235;95712;97523 +08421; Ulm, Stadtkreis;128928;63803;65125 +08425; Alb-Donau-Kreis, Landkreis;202476;101989;100487 +08426; Biberach, Landkreis;206513;104027;102486 +08435; Bodenseekreis, Landkreis;222712;109351;113361 +08436; Ravensburg, Landkreis;290911;144799;146112 +08437; Sigmaringen, Landkreis;134045;67381;66664 +09; Bayern;13369393;6620203;6749190 +091; Oberbayern, Regierungsbezirk;4801769;2370431;2431338 +09161; Ingolstadt, kreisfreie Stadt;141029;71308;69721 +09162; München, kreisfreie Stadt;1512491;736806;775685 +09163; Rosenheim, kreisfreie Stadt;64403;31922;32481 +09171; Altötting, Landkreis;113798;56238;57560 +09172; Berchtesgadener Land, Landkreis;107667;52850;54817 +09173; Bad Tölz-Wolfratshausen, Landkreis;129511;63758;65753 +09174; Dachau, Landkreis;156982;78276;78706 +09175; Ebersberg, Landkreis;146830;73169;73661 +09176; Eichstätt, Landkreis;135591;68634;66957 +09177; Erding, Landkreis;141680;71117;70563 +09178; Freising, Landkreis;184433;94031;90402 +09179; Fürstenfeldbruck, Landkreis;221612;108617;112995 +09180; Garmisch-Partenkirchen, Landkreis;88840;42925;45915 +09181; Landsberg am Lech, Landkreis;123032;61199;61833 +09182; Miesbach, Landkreis;101346;49603;51743 +09183; Mühldorf a.Inn, Landkreis;119878;60544;59334 +09184; München, Landkreis;355890;176060;179830 +09185; Neuburg-Schrobenhausen, Landkreis;99957;50240;49717 +09186; Pfaffenhofen a.d.Ilm, Landkreis;132082;67028;65054 +09187; Rosenheim, Landkreis;266945;131878;135067 +09188; Starnberg, Landkreis;138785;66902;71883 +09189; Traunstein, Landkreis;180779;89067;91712 +09190; Weilheim-Schongau, Landkreis;138208;68259;69949 +092; Niederbayern, Regierungsbezirk;1273955;637936;636019 +09261; Landshut, kreisfreie Stadt;75457;36833;38624 +09262; Passau, kreisfreie Stadt;53907;26167;27740 +09263; Straubing, kreisfreie Stadt;49164;24797;24367 +09271; Deggendorf, Landkreis;122121;61353;60768 +09272; Freyung-Grafenau, Landkreis;79286;39459;39827 +09273; Kelheim, Landkreis;125701;63520;62181 +09274; Landshut, Landkreis;164773;83050;81723 +09275; Passau, Landkreis;196963;97778;99185 +09276; Regen, Landkreis;78035;38968;39067 +09277; Rottal-Inn, Landkreis;124436;62503;61933 +09278; Straubing-Bogen, Landkreis;103806;52035;51771 +09279; Dingolfing-Landau, Landkreis;100306;51473;48833 +093; Oberpfalz, Regierungsbezirk;1133741;564751;568990 +09361; Amberg, kreisfreie Stadt;42534;20920;21614 +09362; Regensburg, kreisfreie Stadt;157443;76690;80753 +09363; Weiden i.d.OPf., kreisfreie Stadt;43052;20833;22219 +09371; Amberg-Sulzbach, Landkreis;104436;52328;52108 +09372; Cham, Landkreis;130193;65441;64752 +09373; Neumarkt i.d.OPf., Landkreis;138086;69843;68243 +09374; Neustadt a.d.Waldnaab, Landkreis;95954;47697;48257 +09375; Regensburg, Landkreis;198160;99038;99122 +09376; Schwandorf, Landkreis;151711;76171;75540 +09377; Tirschenreuth, Landkreis;72172;35790;36382 +094; Oberfranken, Regierungsbezirk;1073783;529160;544623 +09461; Bamberg, kreisfreie Stadt;79935;39117;40818 +09462; Bayreuth, kreisfreie Stadt;74506;36399;38107 +09463; Coburg, kreisfreie Stadt;41842;20328;21514 +09464; Hof, kreisfreie Stadt;46656;22663;23993 +09471; Bamberg, Landkreis;149122;74606;74516 +09472; Bayreuth, Landkreis;104702;51923;52779 +09473; Coburg, Landkreis;87103;43107;43996 +09474; Forchheim, Landkreis;117948;58401;59547 +09475; Hof, Landkreis;94589;46307;48282 +09476; Kronach, Landkreis;66393;32798;33595 +09477; Kulmbach, Landkreis;71653;35199;36454 +09478; Lichtenfels, Landkreis;67328;33189;34139 +09479; Wunsiedel i.Fichtelgebirge, Landkreis;72006;35123;36883 +095; Mittelfranken, Regierungsbezirk;1805791;889544;916247 +09561; Ansbach, kreisfreie Stadt;42221;20194;22027 +09562; Erlangen, kreisfreie Stadt;116562;57940;58622 +09563; Fürth, kreisfreie Stadt;131433;64348;67085 +09564; Nürnberg, kreisfreie Stadt;523026;255250;267776 +09565; Schwabach, kreisfreie Stadt;41227;20110;21117 +09571; Ansbach, Landkreis;188623;94550;94073 +09572; Erlangen-Höchstadt, Landkreis;140994;69977;71017 +09573; Fürth, Landkreis;119923;58382;61541 +09574; Nürnberger Land, Landkreis;172665;84864;87801 +09575; Neustadt a.d.Aisch-Bad Windsheim, Landkreis;103303;51799;51504 +09576; Roth, Landkreis;128694;63723;64971 +09577; Weißenburg-Gunzenhausen, Landkreis;97120;48407;48713 +096; Unterfranken, Regierungsbezirk;1334376;660476;673900 +09661; Aschaffenburg, kreisfreie Stadt;72444;35160;37284 +09662; Schweinfurt, kreisfreie Stadt;54675;27041;27634 +09663; Würzburg, kreisfreie Stadt;127810;61008;66802 +09671; Aschaffenburg, Landkreis;176958;87610;89348 +09672; Bad Kissingen, Landkreis;104567;51477;53090 +09673; Rhön-Grabfeld, Landkreis;80341;39954;40387 +09674; Haßberge, Landkreis;84984;42626;42358 +09675; Kitzingen, Landkreis;93247;46806;46441 +09676; Miltenberg, Landkreis;129835;64503;65332 +09677; Main-Spessart, Landkreis;127132;63281;63851 +09678; Schweinfurt, Landkreis;117044;59107;57937 +09679; Würzburg, Landkreis;165339;81903;83436 +097; Schwaben, Regierungsbezirk;1945978;967905;978073 +09761; Augsburg, kreisfreie Stadt;301033;148355;152678 +09762; Kaufbeuren, kreisfreie Stadt;45792;22583;23209 +09763; Kempten (Allgäu), kreisfreie Stadt;70056;34669;35387 +09764; Memmingen, kreisfreie Stadt;45857;22647;23210 +09771; Aichach-Friedberg, Landkreis;137334;68380;68954 +09772; Augsburg, Landkreis;261342;129390;131952 +09773; Dillingen a.d.Donau, Landkreis;99109;49626;49483 +09774; Günzburg, Landkreis;130112;65595;64517 +09775; Neu-Ulm, Landkreis;180425;89639;90786 +09776; Lindau (Bodensee), Landkreis;83393;41121;42272 +09777; Ostallgäu, Landkreis;145378;72362;73016 +09778; Unterallgäu, Landkreis;150068;75833;74235 +09779; Donau-Ries, Landkreis;137137;69586;67551 +09780; Oberallgäu, Landkreis;158942;78119;80823 +10; Saarland;992666;487101;505565 +10041; Saarbrücken, Regionalverband;330848;162630;168218 +10041100; Saarbrücken, Landeshauptstadt;181959;90445;91514 +10042; Merzig-Wadern, Landkreis;104425;51552;52873 +10043; Neunkirchen, Landkreis;132283;65064;67219 +10044; Saarlouis, Landkreis;195749;95910;99839 +10045; Saarpfalz-Kreis;142419;69192;73227 +10046; St. Wendel, Landkreis;86942;42753;44189 +11; Berlin;3755251;1843196;1912055 +11001001; Berlin-Mitte;.;.;. +11002002; Berlin-Friedrichshain-Kreuzberg;.;.;. +11003003; Berlin-Pankow;.;.;. +11004004; Berlin-Charlottenburg-Wilmersdorf;.;.;. +11005005; Berlin-Spandau;.;.;. +11006006; Berlin-Steglitz-Zehlendorf;.;.;. +11007007; Berlin-Tempelhof-Schöneberg;.;.;. +11008008; Berlin-Neukölln;.;.;. +11009009; Berlin-Treptow-Köpenick;.;.;. +11010010; Berlin-Marzahn-Hellersdorf;.;.;. +11011011; Berlin-Lichtenberg;.;.;. +11012012; Berlin-Reinickendorf;.;.;. +12; Brandenburg;2573135;1265151;1307984 +12051; Brandenburg an der Havel, kreisfreie Stadt;73609;36106;37503 +12052; Cottbus, kreisfreie Stadt;99515;48535;50980 +12053; Frankfurt (Oder), kreisfreie Stadt;58230;28223;30007 +12054; Potsdam, kreisfreie Stadt;185750;89442;96308 +12060; Barnim, Landkreis;191849;94508;97341 +12061; Dahme-Spreewald, Landkreis;178967;88512;90455 +12062; Elbe-Elster, Landkreis;100902;50011;50891 +12063; Havelland, Landkreis;169334;83473;85861 +12064; Märkisch-Oderland, Landkreis;200292;99079;101213 +12065; Oberhavel, Landkreis;218551;107236;111315 +12066; Oberspreewald-Lausitz, Landkreis;108263;53007;55256 +12067; Oder-Spree, Landkreis;182401;89338;93063 +12068; Ostprignitz-Ruppin, Landkreis;99871;49583;50288 +12069; Potsdam-Mittelmark, Landkreis;222570;109781;112789 +12070; Prignitz, Landkreis;76045;37625;38420 +12071; Spree-Neiße, Landkreis;112493;55072;57421 +12072; Teltow-Fläming, Landkreis;176648;88122;88526 +12073; Uckermark, Landkreis;117845;57498;60347 +13; Mecklenburg-Vorpommern;1628378;799695;828683 +13001; Greifswald, Hansestadt, kreisfreie Stadt;-;-;- +13002; Neubrandenburg, Stadt, kreisfreie Stadt;-;-;- +13003; Rostock, kreisfreie Stadt;209920;102800;107120 +13004; Schwerin, kreisfreie Stadt;98596;47203;51393 +13005; Stralsund, Hansestadt, kreisfreie Stadt;-;-;- +13006; Wismar, Hansestadt, kreisfreie Stadt;-;-;- +13051; Bad Doberan, Landkreis;-;-;- +13052; Landkreis Demmin;-;-;- +13053; Güstrow, Landkreis;-;-;- +13054; Landkreis Ludwigslust;-;-;- +13055; Mecklenburg-Strelitz, Landkreis;-;-;- +13056; Landkreis Müritz;-;-;- +13057; Nordvorpommern, Landkreis;-;-;- +13058; Landkreis Nordwestmecklenburg;-;-;- +13059; Ostvorpommern, Landkreis;-;-;- +13060; Landkreis Parchim;-;-;- +13061; Rügen, Landkreis;-;-;- +13062; Landkreis Uecker-Randow;-;-;- +13071; Mecklenburgische Seenplatte, Landkreis;259568;127218;132350 +13072; Landkreis Rostock;220807;109406;111401 +13073; Vorpommern-Rügen, Landkreis;227683;111156;116527 +13074; Nordwestmecklenburg, Landkreis;160288;79473;80815 +13075; Vorpommern-Greifswald, Landkreis;237355;115725;121630 +13076; Ludwigslust-Parchim, Landkreis;214161;106714;107447 +14; Sachsen;4086152;2010537;2075615 +141; Chemnitz, Regierungsbezirk;-;-;- +14161; Chemnitz, kreisfreie Stadt;-;-;- +14166; Plauen, kreisfreie Stadt;-;-;- +14167; Zwickau, kreisfreie Stadt;-;-;- +14171; Annaberg, Landkreis;-;-;- +14173; Chemnitzer Land, Landkreis;-;-;- +14177; Freiberg, Landkreis;-;-;- +14178; Vogtlandkreis;-;-;- +14181; Mittlerer Erzgebirgskreis;-;-;- +14182; Mittweida, Landkreis;-;-;- +14188; Stollberg, Landkreis;-;-;- +14191; Aue-Schwarzenberg, Landkreis;-;-;- +14193; Zwickauer Land, Landkreis;-;-;- +142; Dresden, Regierungsbezirk;-;-;- +14262; Dresden, kreisfreie Stadt;-;-;- +14263; Görlitz, kreisfreie Stadt;-;-;- +14264; Hoyerswerda, kreisfreie Stadt;-;-;- +14272; Bautzen, Landkreis;-;-;- +14280; Meißen, Landkreis;-;-;- +14284; Niederschlesischer Oberlausitzkreis;-;-;- +14285; Riesa-Großenhain, Landkreis;-;-;- +14286; Löbau-Zittau, Landkreis;-;-;- +14287; Sächsische Schweiz, Landkreis;-;-;- +14290; Weißeritzkreis;-;-;- +14292; Kamenz, Landkreis;-;-;- +143; Leipzig, Regierungsbezirk;-;-;- +14365; Leipzig, kreisfreie Stadt;-;-;- +14374; Delitzsch, Landkreis;-;-;- +14375; Döbeln, Landkreis;-;-;- +14379; Leipziger Land, Landkreis;-;-;- +14383; Muldentalkreis;-;-;- +14389; Torgau-Oschatz, Landkreis;-;-;- +145; Chemnitz, Statistische Region;1411556;693193;718363 +14511; Chemnitz, kreisfreie Stadt;248563;122678;125885 +14521; Erzgebirgskreis;328850;160991;167859 +14522; Mittelsachsen, Landkreis;300639;149223;151416 +14523; Vogtlandkreis;222666;108488;114178 +14524; Zwickau, Landkreis;310838;151813;159025 +146; Dresden, Statistische Region;1598250;788007;810243 +14612; Dresden, kreisfreie Stadt;563311;279338;283973 +14625; Bautzen, Landkreis;297711;146982;150729 +14626; Görlitz, Landkreis;249681;122032;127649 +14627; Meißen, Landkreis;241343;118391;122952 +14628; Sächsische Schweiz-Osterzgebirge, Landkreis;246204;121264;124940 +147; Leipzig, Statistische Region;1076346;529337;547009 +14713; Leipzig, kreisfreie Stadt;616093;302741;313352 +14729; Leipzig, Landkreis;260429;127570;132859 +14730; Nordsachsen, Landkreis;199824;99026;100798 +15; Sachsen-Anhalt;2186643;1073711;1112932 +15001; Dessau-Roßlau, kreisfreie Stadt;79655;38509;41146 +15002; Halle (Saale), kreisfreie Stadt;242083;116835;125248 +15003; Magdeburg, kreisfreie Stadt, Landeshauptstadt;239364;117729;121635 +15081; Altmarkkreis Salzwedel;82457;41042;41415 +15082; Anhalt-Bitterfeld, Landkreis;157235;76971;80264 +15083; Börde, Landkreis;171393;85383;86010 +15084; Burgenlandkreis;177212;87200;90012 +15085; Harz, Landkreis;210381;103454;106927 +15086; Jerichower Land, Landkreis;90256;44854;45402 +15087; Mansfeld-Südharz, Landkreis;132034;64916;67118 +15088; Saalekreis;183974;90866;93108 +15089; Salzlandkreis;186420;90887;95533 +15090; Stendal, Landkreis;110291;54172;56119 +15091; Wittenberg, Landkreis;123888;60893;62995 +151; Dessau, Statistische Region;-;-;- +15101; Dessau, kreisfreie Stadt;-;-;- +15151; Anhalt-Zerbst, Kreis;-;-;- +15153; Bernburg, Kreis;-;-;- +15154; Bitterfeld, Kreis;-;-;- +15159; Köthen, Kreis;-;-;- +15171; Wittenberg, Kreis;-;-;- +152; Halle, Statistische Region;-;-;- +15202; Halle (Saale), kreisfreie Stadt;-;-;- +15256; Burgenlandkreis;-;-;- +15260; Mansfelder Land, Kreis;-;-;- +15261; Merseburg-Querfurt, Kreis;-;-;- +15265; Saalkreis;-;-;- +15266; Sangerhausen, Kreis;-;-;- +15268; Weißenfels, Kreis;-;-;- +153; Magdeburg, Statistische Region;-;-;- +15303; Magdeburg, kreisfreie Stadt;-;-;- +15352; Aschersleben-Staßfurt, Kreis;-;-;- +15355; Bördekreis;-;-;- +15357; Halberstadt, Kreis;-;-;- +15358; Jerichower Land, Kreis;-;-;- +15362; Ohrekreis;-;-;- +15363; Stendal, Kreis;-;-;- +15364; Quedlinburg, Kreis;-;-;- +15367; Schönebeck, Kreis;-;-;- +15369; Wernigerode, Kreis;-;-;- +15370; Altmarkkreis Salzwedel, Kreis;-;-;- +16; Thüringen;2126846;1051482;1075364 +16051; Erfurt, kreisfreie Stadt;214969;104205;110764 +16052; Gera, kreisfreie Stadt;93634;45174;48460 +16053; Jena, kreisfreie Stadt;111191;55301;55890 +16054; Suhl, kreisfreie Stadt;37009;18339;18670 +16055; Weimar, kreisfreie Stadt;65620;31624;33996 +16056; Eisenach, kreisfreie Stadt;-;-;- +16061; Eichsfeld, Landkreis;100091;50150;49941 +16062; Nordhausen, Landkreis;82444;40782;41662 +16063; Wartburgkreis;159539;79425;80114 +16064; Unstrut-Hainich-Kreis;102256;50688;51568 +16065; Kyffhäuserkreis;73690;36612;37078 +16066; Schmalkalden-Meiningen, Landkreis;123939;61977;61962 +16067; Gotha, Landkreis;134941;66997;67944 +16068; Sömmerda, Landkreis;69646;34846;34800 +16069; Hildburghausen, Landkreis;61926;31002;30924 +16070; Ilm-Kreis;106776;53798;52978 +16071; Weimarer Land, Landkreis;83179;41156;42023 +16072; Sonneberg, Landkreis;56922;28093;28829 +16073; Saalfeld-Rudolstadt, Landkreis;101494;49926;51568 +16074; Saale-Holzland-Kreis;83234;41328;41906 +16075; Saale-Orla-Kreis;79178;39306;39872 +16076; Greiz, Landkreis;96381;47487;48894 +16077; Altenburger Land, Landkreis;88787;43266;45521 +__________ +"zu ""gesamter Tabelle"": +Alle Länder: +Bei den Bevölkerungsdaten handelt es sich um +Fortschreibungszahlen, die ab dem Berichtsjahr 2011 auf den +Ergebnissen des Zensus vom 09. Mai 2011 basieren. +Bevölkerungsdaten für die Berichtsjahre 1987 bis 2010 +wurden in den alten Bundesländern aufgrund der Ergebnisse +der Volkszählung vom 25. Mai 1987 erstellt, in den neuen +Bundesländern bildet die am 3. Oktober 1990 aufgrund eines +Auszugs des zentralen Einwohnerregisters der ehemaligen DDR +festgestellte amtliche Einwohnerzahl die Grundlage. + +Alle Länder: Die Entwicklung des Bevölkerungsstandes ab dem +Berichtsjahr 2016 ist aufgrund methodischer Änderungen in +den zugrunde liegenden Bevölkerungsbewegungsstatistiken nur +bedingt mit den Werten vor 2016 vergleichbar. Einschrän- +kungen bei der Genauigkeit der Ergebnisse können aus der er- +höhten Zuwanderung und den dadurch bedingten Problemen bei +der melderechtlichen Erfassung Schutzsuchender resultieren. + +Baden-Württemberg (Berichtsjahr 2008-2010): Gebietsstand +01.01.2009 +Baden-Württemberg (ab Berichtsjahr 2011): Gebietsstand +01.01.2011 +Baden-Württemberg (31.12.2017): Abweichungen zu anderen +Veröffentlichungen ergeben sich ggf. durch nachträgliche +Korrekturen. +Nordrhein-Westfalen (31.12.2016): Für sechs Kommunen ist +das vorliegende Ergebnis, das u. a. auf Basis der von den +Meldebehörden erhaltenen Nachrichten ermittelt wurde, un- +plausibel. Daher ist die Genauigkeit der Ergebnisse der +übergeordneten Verwaltungsbezirke eingeschränkt. Die Gründe +hierfür liegen offenbar in der melderechtlichen Behandlung +von Schutzsuchenden. Die Unstimmigkeiten konnten nicht ab- +schließend aufgelöst werden." +"© Statistische Ämter des Bundes und der Länder, Deutschland, 2024. +Dieses Werk ist lizenziert unter der Datenlizenz Deutschland +- Namensnennung - Version 2.0." +Stand: 28.05.2024 / 13:37:10 diff --git a/2024_Datenbanksysteme/data/source/hochschulen.csv b/2024_Datenbanksysteme/data/source/hochschulen.csv new file mode 100644 index 0000000..b813f1d --- /dev/null +++ b/2024_Datenbanksysteme/data/source/hochschulen.csv @@ -0,0 +1,431 @@ +Hochschulkurzname;Hochschulname;Hochschultyp;Trägerschaft;Bundesland;Anzahl Studierende;Gründungsjahr;Promotionsrecht;Habilitationsrecht;Straße;Postleitzahl (Hausanschrift);Ort (Hausanschrift);Home Page +Aachen FH;Fachhochschule Aachen;Fachhochschulen / HAW;öffentlich-rechtlich;Nordrhein-Westfalen;14086;1971;Nein;Nein;Bayernallee 11;52066;Aachen;http://www.fh-aachen.de +Aachen TH;Rheinisch-Westfälische Technische Hochschule Aachen;Universitäten;öffentlich-rechtlich;Nordrhein-Westfalen;45527;1870;Ja;Ja;Templergraben 55;52062;Aachen;https://www.rwth-aachen.de +Aalen H;Hochschule Aalen - Technik und Wirtschaft;Fachhochschulen / HAW;öffentlich-rechtlich;Baden-Württemberg;4559;1962;Nein;Nein;Beethovenstraße 1;73430;Aalen;http://www.hs-aalen.de +Albstadt-Sigmaringen H;Hochschule Albstadt-Sigmaringen;Fachhochschulen / HAW;öffentlich-rechtlich;Baden-Württemberg;2666;1971;Nein;Nein;Anton-Günther-Straße 51;72488;Sigmaringen;www.hs-albsig.de +Alfter HfKuG;Alanus Hochschule für Kunst und Gesellschaft;Künstlerische Hochschulen;privat, staatlich anerkannt;Nordrhein-Westfalen;1564;1973;Ja;Nein;Villestraße 3;53347;Alfter;https://www.alanus.edu/de/home +Amberg-Weiden OTH;Ostbayerische Technische Hochschule Amberg-Weiden;Fachhochschulen / HAW;öffentlich-rechtlich;Bayern;4077;1994;Ja;Nein;Kaiser-Wilhelm-Ring 23;92224;Amberg;http://www.oth-aw.de/ +Anhalt H;Hochschule Anhalt - Anhalt University of Applied Sciences;Fachhochschulen / HAW;öffentlich-rechtlich;Sachsen-Anhalt;7067;1991;Ja;Nein;Bernburger Straße 55;06366;Köthen;http://www.hs-anhalt.de +Ansbach H;Hochschule für angewandte Wissenschaften Ansbach;Fachhochschulen / HAW;öffentlich-rechtlich;Bayern;3898;1996;Ja;Nein;Residenzstraße 8;91522;Ansbach;http://www.hs-ansbach.de +Aschaffenburg TH;Technische Hochschule Aschaffenburg;Fachhochschulen / HAW;öffentlich-rechtlich;Bayern;3559;1995;Nein;Nein;Würzburger Straße 45;63743;Aschaffenburg;http://www.th-ab.de +Augsburg TH;Technische Hochschule Augsburg;Fachhochschulen / HAW;öffentlich-rechtlich;Bayern;7025;1710;Nein;Nein;An der Hochschule 1;86161;Augsburg;https://www.tha.de/ +Augsburg U;Universität Augsburg;Universitäten;öffentlich-rechtlich;Bayern;19089;1970;Ja;Ja;Universitätsstraße 2;86159;Augsburg;http://www.uni-augsburg.de +Backnang EHIP;EHIP - Europäische Hochschule für Innovation und Perspektive;Fachhochschulen / HAW;privat, staatlich anerkannt;Baden-Württemberg;;2022;Nein;Nein;Willy-Brandt-Platz 2;71522;Backnang;https://www.ehip.eu/ +Baden-Württemberg HfPol (Verw);Hochschule für Polizei Baden-Württemberg;Verwaltungshochschule;öffentlich-rechtlich;Baden-Württemberg;2337;;Nein;Nein;Sturmbühlstraße 250;78054;Villingen-Schwenningen;https://www.hfpol-bw.de/index.php/villingen-schwenningen +Baden-Württemberg HRecht (Verw);Hochschule für Rechtspflege Schwetzingen;Verwaltungshochschule;öffentlich-rechtlich;Baden-Württemberg;716;1953;Nein;Nein;Karlsruher Straße 2;68723;Schwetzingen;http://www.hfr-bw.de/pb/,Lde/Startseite +Baden-Württemberg HVerw/Finanzen(Verw);Hochschule für öffentliche Verwaltung und Finanzen Ludwigsburg;Verwaltungshochschule;öffentlich-rechtlich;Baden-Württemberg;2792;1999;Nein;Nein;Reuteallee 36;71634;Ludwigsburg;https://www.hs-ludwigsburg.de/ +Baden-Württemberg HVerw (Verw);Hochschule für öffentliche Verwaltung Kehl;Verwaltungshochschule;öffentlich-rechtlich;Baden-Württemberg;1421;1971;Nein;Nein;Kinzigallee 1;77694;Kehl;https://www.hs-kehl.de/ +Bad Homburg accadisFH;accadis Hochschule Bad Homburg;Fachhochschulen / HAW;privat, staatlich anerkannt;Hessen;448;1980;Nein;Nein;SÜDCAMPUS Bad Homburg Am Weidenring 4;61352;Bad Homburg;https://www.accadis.com/contact.aspx +Bad Liebenzell IHL;Internationale Hochschule Liebenzell (IHL);Fachhochschulen / HAW;privat, staatlich anerkannt;Baden-Württemberg;305;2011;Nein;Nein;Heinrich-Coerper-Weg 11;75378;Bad Liebenzell;http://www.ihl.eu +Bamberg U;Otto-Friedrich-Universität Bamberg;Universitäten;öffentlich-rechtlich;Bayern;10734;1647;Ja;Ja;Kapuzinerstr. 25;96047;Bamberg;http://www.uni-bamberg.de/ +Bayern HföD (Verw);Hochschule für den öffentlichen Dienst in Bayern;Verwaltungshochschule;öffentlich-rechtlich;Bayern;4907;;Nein;Nein;Wagmüllerstraße 20;80538;München;https://www.hfoed.bayern.de/ +Bayreuth HfKiM;Hochschule für evangelische Kirchenmusik der Evangelisch-Lutherischen Kirche in Bayern;Künstlerische Hochschulen;kirchlich, staatlich anerkannt;Bayern;26;2000;Nein;Nein;Wilhelminenstraße 9;95444;Bayreuth;http://www.hfk-bayreuth.de +Bayreuth U;Universität Bayreuth;Universitäten;öffentlich-rechtlich;Bayern;11924;1972;Ja;Ja;Universitätsstraße 30;95447;Bayreuth;http://www.uni-bayreuth.de +Berlin Akkon;Akkon-Hochschule;Fachhochschulen / HAW;privat, staatlich anerkannt;Berlin;1406;2009;Nein;Nein;Colditzstraße 34-36;12099;Berlin;http://www.akkon-hochschule.de +Berlin ASH;Alice Salomon Hochschule Berlin;Fachhochschulen / HAW;öffentlich-rechtlich;Berlin;4299;1971;Nein;Nein;Alice-Salomon-Platz 5;12627;Berlin;http://www.ash-berlin.eu +Berlin bbw;bbw Hochschule;Fachhochschulen / HAW;privat, staatlich anerkannt;Berlin;822;2007;Nein;Nein;Wagner-Régeny-Straße 21;12489;Berlin;http://www.bbw-hochschule.de +Berlin BC;Bard College Berlin, A Liberal Arts University;Universitäten;privat, staatlich anerkannt;Berlin;312;1999;Nein;Nein;Platanenstrasse 24;13156;Berlin;http://www.berlin.bard.edu +Berlin BHT;Berliner Hochschule für Technik;Fachhochschulen / HAW;öffentlich-rechtlich;Berlin;12296;1971;Nein;Nein;Luxemburger Str. 10;13353;Berlin;https://www.bht-berlin.de/ +Berlin BIU;Berlin International University of Applied Sciences;Fachhochschulen / HAW;privat, staatlich anerkannt;Berlin;530;2014;Nein;Nein;Salzufer 6;10587;Berlin;http://www.berlin-international.de/ +Berlin BSA;Barenboim-Said Akademie;Künstlerische Hochschulen;privat, staatlich anerkannt;Berlin;77;2016;Nein;Nein;Französische Straße 33D;10117;Berlin;www.barenboimsaid.de +Berlin BSP;BSP Business and Law School - Hochschule für Management und Recht;Fachhochschulen / HAW;privat, staatlich anerkannt;Berlin;1750;2009;Nein;Nein;Calandrellistraße 1-9;12247;Berlin;https://www.businessschool-berlin.de/ +Berlin CODE;CODE University of Applied Sciences;Fachhochschulen / HAW;privat, staatlich anerkannt;Berlin;610;2017;Nein;Nein;Lohmühlenstr. 65;12435;Berlin;https://code.berlin/de/ +Berlin DBU;Digital Business University of Applied Sciences;Fachhochschulen / HAW;privat, staatlich anerkannt;Berlin;282;2018;Nein;Nein;Oranienstr. 185;10999;Berlin;https://dbuas.de/ +Berlin DHGS;DHGS Deutsche Hochschule für Gesundheit und Sport;Fachhochschulen / HAW;privat, staatlich anerkannt;Berlin;1865;2007;Nein;Nein;Franklinstr. 28-29;10587;Berlin;https://dhgs-hochschule.de +Berlin ESCP;ESCP Europe Wirtschaftshochschule Berlin e.V.;Universitäten;privat, staatlich anerkannt;Berlin;1254;1819;Ja;Nein;Heubnerweg 8-10;14059;Berlin;http://www.escp.eu +Berlin ESMT;ESMT European School of Management and Technology;Universitäten;privat, staatlich anerkannt;Berlin;820;2002;Ja;Nein;Schlossplatz 1;10178;Berlin;http://www.esmt.org/en/home +Berlin EvH;Evangelische Hochschule Berlin;Fachhochschulen / HAW;kirchlich, staatlich anerkannt;Berlin;1696;1904;Nein;Nein;Teltower Damm 118-122;14167;Berlin;http://www.eh-berlin.de +Berlin FHTouro;Touro College Berlin;Fachhochschulen / HAW;privat, staatlich anerkannt;Berlin;129;2003;Nein;Nein;Am Rupenhorn 5;14055;Berlin;http://www.touroberlin.de +Berlin FU;Freie Universität Berlin;Universitäten;öffentlich-rechtlich;Berlin;42090;1948;Ja;Ja;Kaiserswerther Str. 16-18;14195;Berlin;http://www.fu-berlin.de +Berlin Hertie;Hertie School;Universitäten;privat, staatlich anerkannt;Berlin;716;2004;Ja;Nein;Quartier 110, Friedrichstraße 180;10117;Berlin;https://www.hertie-school.org/en/ +Berlin HfM;Hochschule für Musik Hanns Eisler Berlin;Künstlerische Hochschulen;öffentlich-rechtlich;Berlin;556;1950;Nein;Nein;Charlottenstraße 55;10117;Berlin;http://www.hfm-berlin.de +Berlin HfS;Hochschule für Schauspielkunst Ernst Busch;Künstlerische Hochschulen;öffentlich-rechtlich;Berlin;222;1905;Nein;Nein;Zinnowitzer Straße 11;10115;Berlin;http://www.hfs-berlin.de +Berlin HMKW;HMKW Hochschule für Medien, Kommunikation und Wirtschaft;Fachhochschulen / HAW;privat, staatlich anerkannt;Berlin;2038;2008;Nein;Nein;Ackerstraße 76;13355;Berlin;www.hmkw.de +Berlin HSAP;Hochschule für Soziale Arbeit und Pädagogik (HSAP) gemeinnützige Betriebsgesellschaft mbH;Fachhochschulen / HAW;privat, staatlich anerkannt;Berlin;561;2013;Nein;Nein;Alt-Stralau 37-39;10245;Berlin;https://www.hsap.de +Berlin HTW;Hochschule für Technik und Wirtschaft Berlin;Fachhochschulen / HAW;öffentlich-rechtlich;Berlin;14523;1994;Nein;Nein;Treskowallee 8;10318;Berlin;https://www.htw-berlin.de +Berlin HU;Humboldt-Universität zu Berlin;Universitäten;öffentlich-rechtlich;Berlin;40144;1810;Ja;Ja;Unter den Linden 6;10117;Berlin;https://www.hu-berlin.de/de/service/kontakt/ +Berlin HWR;Hochschule für Wirtschaft und Recht Berlin;Fachhochschulen / HAW;öffentlich-rechtlich;Berlin;11454;1971;Nein;Nein;Badensche Straße 52;10825;Berlin;https://www.hwr-berlin.de +Berlin IB;IB Hochschule für Gesundheit und Soziales;Fachhochschulen / HAW;privat, staatlich anerkannt;Berlin;512;2006;Nein;Nein;Warener Str. 7 c/o BG Klinikum Unfallkrankenhaus Berlin gGmbH;12683;Berlin;https://www.ib-hochschule.de +Berlin IPU;International Psychoanalytic University Berlin;Universitäten;privat, staatlich anerkannt;Berlin;872;2009;Nein;Nein;Stromstr. 3b;10555;Berlin;https://www.ipu-berlin.de +Berlin KHS;Katholische Hochschule für Sozialwesen Berlin (KHSB) - Staatlich anerkannte Fachhochschule für Sozialwesen;Fachhochschulen / HAW;kirchlich, staatlich anerkannt;Berlin;1219;1991;Nein;Nein;Köpenicker Allee 39-57;10318;Berlin;http://www.khsb-berlin.de +Berlin MDH;Mediadesign Hochschule für Design und Informatik;Fachhochschulen / HAW;privat, staatlich anerkannt;Berlin;751;2004;Nein;Nein;Franklinstraße 28 - 29;10587;Berlin;http://www.mediadesign.de +Berlin MSB;Medical School Berlin - Hochschule für Gesundheit und Medizin (MSB);Fachhochschulen / HAW;privat, staatlich anerkannt;Berlin;2840;2012;Nein;Nein;Rüdesheimer Str. 50;14197;Berlin;www.medicalschool-berlin.de +Berlin PHB;Psychologische Hochschule Berlin (PHB);Universitäten;privat, staatlich anerkannt;Berlin;731;2010;Nein;Nein;Am Köllnischen Park 2;10179;Berlin;http://www.psychologische-hochschule.de +Berlin Quadriga;Quadriga Hochschule Berlin;Fachhochschulen / HAW;privat, staatlich anerkannt;Berlin;112;;Nein;Nein;Werderscher Markt 13;10117;Berlin;http://www.quadriga-hochschule.com +Berlin SRH;SRH Berlin University of Applied Sciences;Fachhochschulen / HAW;privat, staatlich anerkannt;Berlin;2868;2002;Nein;Nein;Ernst-Reuter-Platz 10;10587;Berlin;https://www.srh-berlin.de/ +Berlin TU;Technische Universität Berlin;Universitäten;öffentlich-rechtlich;Berlin;35101;1879;Ja;Ja;Straße des 17. Juni 135;10623;Berlin;http://www.tu.berlin +Berlin UdK;Universität der Künste Berlin;Künstlerische Hochschulen;öffentlich-rechtlich;Berlin;4191;1699;Ja;Ja;Einsteinufer 43;10587;Berlin;http://www.udk-berlin.de +Berlin VICTORIA;VICTORIA | Internationale Hochschule;Fachhochschulen / HAW;privat, staatlich anerkannt;Berlin;586;2011;Nein;Nein;Bernburger Straße 24-25;10963;Berlin;https://www.victoria-hochschule.de/ +Berlin-Weißensee KHB;weißensee kunsthochschule berlin;Künstlerische Hochschulen;öffentlich-rechtlich;Berlin;823;1946;Nein;Nein;Bühringstraße 20;13086;Berlin;http://www.kh-berlin.de +Biberach H;Hochschule Biberach - Architektur und Bauwesen, Betriebswirtschaft und Biotechnologie;Fachhochschulen / HAW;öffentlich-rechtlich;Baden-Württemberg;2270;1964;Nein;Nein;Karlstraße 11;88400;Biberach;http://www.hochschule-biberach.de +Bielefeld FHDiakonie;Fachhochschule der Diakonie - Diaconia - University of Applied Sciences;Fachhochschulen / HAW;kirchlich, staatlich anerkannt;Nordrhein-Westfalen;754;2006;Nein;Nein;Bethelweg 8;33617;Bielefeld;http://www.fh-diakonie.de +Bielefeld FHM;Fachhochschule des Mittelstands (FHM);Fachhochschulen / HAW;privat, staatlich anerkannt;Nordrhein-Westfalen;5550;2000;Nein;Nein;Ravensberger Straße 10 G;33602;Bielefeld;http://www.fh-mittelstand.de/profil +Bielefeld H;Hochschule Bielefeld - University of Applied Sciences and Arts (HSBI);Fachhochschulen / HAW;öffentlich-rechtlich;Nordrhein-Westfalen;10538;1971;Nein;Nein;Interaktion 1;33619;Bielefeld;https://www.hsbi.de +Bielefeld U;Universität Bielefeld;Universitäten;öffentlich-rechtlich;Nordrhein-Westfalen;23539;1969;Ja;Ja;Universitätsstraße 25;33615;Bielefeld;http://www.uni-bielefeld.de/ +Bingen TH;Technische Hochschule Bingen;Fachhochschulen / HAW;öffentlich-rechtlich;Rheinland-Pfalz;2433;1897;Nein;Nein;Berlinstraße 109;55411;Bingen;https://www.th-bingen.de/home/ +Bochum EBZ;EBZ Business School - University of Applied Sciences;Fachhochschulen / HAW;privat, staatlich anerkannt;Nordrhein-Westfalen;1114;2008;Nein;Nein;Springorumallee 20;44795;Bochum;https://www.ebz-business-school.de/ +Bochum H;Hochschule Bochum - University of Applied Sciences;Fachhochschulen / HAW;öffentlich-rechtlich;Nordrhein-Westfalen;7695;1971;Nein;Nein;Am Hochschulcampus 1;44801;Bochum;http://www.hochschule-bochum.de +Bochum HGesundheit;Hochschule für Gesundheit - University of Applied Sciences;Fachhochschulen / HAW;öffentlich-rechtlich;Nordrhein-Westfalen;1808;2009;Nein;Nein;Gesundheitscampus 6-8;44801;Bochum;http://www.hs-gesundheit.de +Bochum Rheinland-Westfalen-Lippe EvH;Evangelische Hochschule Rheinland-Westfalen-Lippe;Fachhochschulen / HAW;kirchlich, staatlich anerkannt;Nordrhein-Westfalen;2558;1971;Nein;Nein;Immanuel-Kant-Straße 18-20;44803;Bochum;http://www.evh-bochum.de +Bochum TH;Technische Hochschule Georg Agricola;Fachhochschulen / HAW;privat, staatlich anerkannt;Nordrhein-Westfalen;2316;1816;Nein;Nein;Herner Straße 45;44787;Bochum;http://www.thga.de +Bochum U;Ruhr-Universität Bochum;Universitäten;öffentlich-rechtlich;Nordrhein-Westfalen;38939;1962;Ja;Ja;Universitätsstraße 150;44801;Bochum;http://www.ruhr-uni-bochum.de +Bonn HFinMan;Hochschule für Finanzwirtschaft & Management;Fachhochschulen / HAW;privat, staatlich anerkannt;Nordrhein-Westfalen;710;2003;Nein;Nein;Simrockstraße 4;53113;Bonn;http://www.s-hochschule.de +Bonn-Rhein-Sieg H;Hochschule Bonn-Rhein-Sieg, University of Applied Sciences;Fachhochschulen / HAW;öffentlich-rechtlich;Nordrhein-Westfalen;9070;1995;Nein;Nein;Grantham-Allee 20;53757;Sankt Augustin;www.h-brs.de +Bonn U;Rheinische Friedrich-Wilhelms-Universität Bonn;Universitäten;öffentlich-rechtlich;Nordrhein-Westfalen;34630;1818;Ja;Ja;Regina-Pacis-Weg 3;53113;Bonn;http://www.uni-bonn.de +Brandenburg FHFinanz (Verw);Fachhochschule für Finanzen Brandenburg;Verwaltungshochschule;öffentlich-rechtlich;Brandenburg;978;1991;Nein;Nein;Schillerstraße 6;15711;Königs Wusterhausen;https://fhf.brandenburg.de/fhf/de/ +Brandenburg FHPol (Verw);Fachhochschule der Polizei Brandenburg;Verwaltungshochschule;öffentlich-rechtlich;Brandenburg;763;1998;Nein;Nein;Bernauer Str. 146;16515;Oranienburg;https://hpolbb.de/ +Brandenburg TH;Technische Hochschule Brandenburg;Fachhochschulen / HAW;öffentlich-rechtlich;Brandenburg;2217;1992;Nein;Nein;Magdeburger Straße 50;14770;Brandenburg;http://www.th-brandenburg.de +Braunschweig HBK;Hochschule für Bildende Künste Braunschweig;Künstlerische Hochschulen;öffentlich-rechtlich;Niedersachsen;931;1963;Ja;Ja;Johannes-Selenka-Platz 1;38118;Braunschweig;https://www.hbk-bs.de +Braunschweig TU;Technische Universität Carolo-Wilhelmina zu Braunschweig;Universitäten;öffentlich-rechtlich;Niedersachsen;16155;1745;Ja;Ja;Universitätsplatz 2;38106;Braunschweig;https://www.tu-braunschweig.de +Bremen CU;Constructor University;Universitäten;privat, staatlich anerkannt;Bremen;1483;1999;Ja;Nein;Campus Ring 1;28759;Bremen;https://constructor.university/ +Bremen FernFH;APOLLON Hochschule der Gesundheitswirtschaft;Fachhochschulen / HAW;privat, staatlich anerkannt;Bremen;3365;2005;Nein;Nein;Universitätsallee 18;28359;Bremen;http://www.apollon-hochschule.de/redirect.php?id=32 +Bremen H;Hochschule Bremen;Fachhochschulen / HAW;öffentlich-rechtlich;Bremen;8672;1982;Nein;Nein;Neustadtwall 30;28199;Bremen;http://www.hs-bremen.de +Bremen HfK;Hochschule für Künste Bremen;Künstlerische Hochschulen;öffentlich-rechtlich;Bremen;1011;1873;Nein;Nein;Am Speicher XI 8;28217;Bremen;http://www.hfk-bremen.de +Bremen U;Universität Bremen;Universitäten;öffentlich-rechtlich;Bremen;18335;1971;Ja;Ja;Bibliothekstraße 1;28359;Bremen;http://www.uni-bremen.de +Bremen VerwH (Verw);Hochschule für Öffentliche Verwaltung Bremen;Verwaltungshochschule;öffentlich-rechtlich;Bremen;648;1979;Nein;Nein;Doventorscontrescarpe 172c;28195;Bremen;www.hfoev.bremen.de +Bremerhaven H;Hochschule Bremerhaven;Fachhochschulen / HAW;öffentlich-rechtlich;Bremen;2816;1975;Nein;Nein;An der Karlstadt 8;27568;Bremerhaven;http://www.hs-bremerhaven.de +Brühl EUFH;Europäische Fachhochschule Rhein/Erft, european university of applied sciences;Fachhochschulen / HAW;privat, staatlich anerkannt;Nordrhein-Westfalen;2180;2001;Nein;Nein;Kaiserstraße 6;50321;Brühl;https://www.eufh.de +Brühl HSBund (Verw);Hochschule des Bundes für öffentliche Verwaltung;Verwaltungshochschule;öffentlich-rechtlich;Nordrhein-Westfalen;9195;1979;Nein;Nein;Willy-Brandt-Straße 1;50321;Brühl;https://www.hsbund.de/ +Buxtehude FH;hochschule 21;Fachhochschulen / HAW;privat, staatlich anerkannt;Niedersachsen;1067;2005;Nein;Nein;Harburger Straße 6;21614;Buxtehude;https://www.hs21.de +Chemnitz TU;Technische Universität Chemnitz;Universitäten;öffentlich-rechtlich;Sachsen;8380;1836;Ja;Ja;Straße der Nationen 62;09111;Chemnitz;http://www.tu-chemnitz.de +Clausthal TU;Technische Universität Clausthal;Universitäten;öffentlich-rechtlich;Niedersachsen;2753;1775;Ja;Ja;Adolph-Roemer-Straße 2 A;38678;Clausthal-Zellerfeld;https://www.tu-clausthal.de +Coburg H;Hochschule für angewandte Wissenschaften Coburg;Fachhochschulen / HAW;öffentlich-rechtlich;Bayern;4700;1814;Nein;Nein;Friedrich-Streib-Straße 2;96450;Coburg;http://www.hs-coburg.de +Cottbus-Senftenberg TU;Brandenburgische Technische Universität Cottbus-Senftenberg;Universitäten;öffentlich-rechtlich;Brandenburg;6587;2013;Ja;Ja;Platz der Dt. Einheit 1;03046;Cottbus;http://www.b-tu.de +Darmstadt EvH;Evangelische Hochschule Darmstadt (staatlich anerkannt) – Kirchliche Körperschaft des öffentlichen Rechts;Fachhochschulen / HAW;kirchlich, staatlich anerkannt;Hessen;1333;1971;Nein;Nein;Zweifalltorweg 12;64293;Darmstadt;http://www.eh-darmstadt.de +Darmstadt FernH;Wilhelm Büchner Hochschule - Private Fernhochschule Darmstadt;Fachhochschulen / HAW;privat, staatlich anerkannt;Hessen;4915;1997;Nein;Nein;Hilpertstr. 31;64295;Darmstadt;http://www.wb-fernstudium.de?referrer=hochschulkompass_portal +Darmstadt H;Hochschule Darmstadt;Fachhochschulen / HAW;öffentlich-rechtlich;Hessen;15474;1876;Ja;Nein;Schöfferstraße 3;64295;Darmstadt;http://www.h-da.de/ +Darmstadt TU;Technische Universität Darmstadt;Universitäten;öffentlich-rechtlich;Hessen;24008;1877;Ja;Ja;Karolinenplatz 5;64289;Darmstadt;http://www.tu-darmstadt.de +Deggendorf TH;Technische Hochschule Deggendorf;Fachhochschulen / HAW;öffentlich-rechtlich;Bayern;8660;1994;Nein;Nein;Dieter-Görlitz-Platz 1;94469;Deggendorf;http://www.th-deg.de +Detmold HfM;Hochschule für Musik Detmold;Künstlerische Hochschulen;öffentlich-rechtlich;Nordrhein-Westfalen;637;1946;Ja;Nein;Neustadt 22;32756;Detmold;http://www.hfm-detmold.de/ +Dortmund FH;Fachhochschule Dortmund;Fachhochschulen / HAW;öffentlich-rechtlich;Nordrhein-Westfalen;14371;1890;Nein;Nein;Sonnenstraße 96;44139;Dortmund;http://www.fh-dortmund.de +Dortmund ISM;International School of Management;Fachhochschulen / HAW;privat, staatlich anerkannt;Nordrhein-Westfalen;3444;1990;Nein;Nein;Otto-Hahn-Straße 19;44227;Dortmund;https://www.ism.de +Dortmund TU;Technische Universität Dortmund;Universitäten;öffentlich-rechtlich;Nordrhein-Westfalen;30013;1968;Ja;Ja;August-Schmidt-Straße 4;44227;Dortmund;http://www.tu-dortmund.de +Dresden DIU;DIU - Dresden International University GmbH;Universitäten;privat, staatlich anerkannt;Sachsen;1283;2003;Nein;Nein;Freiberger Straße 37;01067;Dresden;https://www.di-uni.de/ +Dresden EvH;Evangelische Hochschule Dresden;Fachhochschulen / HAW;kirchlich, staatlich anerkannt;Sachsen;839;1991;Nein;Nein;Dürerstraße 25;01307;Dresden;www.ehs-dresden.de +Dresden HfBK;Hochschule für Bildende Künste Dresden;Künstlerische Hochschulen;öffentlich-rechtlich;Sachsen;555;1764;Ja;Nein;Güntzstraße 34;01307;Dresden;http://www.hfbk-dresden.de +Dresden HfKiM;Hochschule für Kirchenmusik der Evangelisch-Lutherischen Landeskirche Sachsens;Künstlerische Hochschulen;kirchlich, staatlich anerkannt;Sachsen;24;1949;Nein;Nein;Käthe Kollwitz Ufer 97;01309;Dresden;http://www.kirchenmusik-dresden.de +Dresden HfM;Hochschule für Musik Carl Maria von Weber Dresden;Künstlerische Hochschulen;öffentlich-rechtlich;Sachsen;692;1856;Ja;Nein;Wettiner Platz 13;01067;Dresden;http://www.hfmdd.de +Dresden HfTanz;Palucca Hochschule für Tanz Dresden;Künstlerische Hochschulen;öffentlich-rechtlich;Sachsen;168;1925;Nein;Nein;Basteiplatz 4;01277;Dresden;http://www.palucca.eu +Dresden HTW;Hochschule für Technik und Wirtschaft Dresden - University of Applied Sciences;Fachhochschulen / HAW;öffentlich-rechtlich;Sachsen;4634;1992;Nein;Nein;Friedrich-List-Platz 1;01069;Dresden;http://www.htw-dresden.de +Dresden PFH;Fachhochschule Dresden;Fachhochschulen / HAW;privat, staatlich anerkannt;Sachsen;539;2010;Nein;Nein;Güntzstraße 1;01069;Dresden;https://www.fh-dresden.eu +Dresden TU;Technische Universität Dresden;Universitäten;öffentlich-rechtlich;Sachsen;28959;1828;Ja;Ja;Mommsenstraße 11;01069;Dresden;https://tu-dresden.de +Duisburg-Essen U;Universität Duisburg-Essen;Universitäten;öffentlich-rechtlich;Nordrhein-Westfalen;38001;2003;Ja;Ja;Universitätsstraße 2;45141;Essen;http://www.uni-due.de +Düsseldorf FliednerFH;Fliedner Fachhochschule Düsseldorf;Fachhochschulen / HAW;privat, staatlich anerkannt;Nordrhein-Westfalen;2204;2011;Nein;Nein;Geschwister-Aufricht-Straße 9;40489;Düsseldorf;http://www.fliedner-fachhochschule.de +Düsseldorf H;Hochschule Düsseldorf;Fachhochschulen / HAW;öffentlich-rechtlich;Nordrhein-Westfalen;11172;1971;Nein;Nein;Münsterstraße 156;40476;Düsseldorf;https://www.hs-duesseldorf.de/studienangebot +Düsseldorf HfM;Robert-Schumann-Hochschule Düsseldorf;Künstlerische Hochschulen;öffentlich-rechtlich;Nordrhein-Westfalen;837;1935;Ja;Nein;Fischerstraße 110;40476;Düsseldorf;http://www.rsh-duesseldorf.de +Düsseldorf IST;IST-Hochschule für Management;Fachhochschulen / HAW;privat, staatlich anerkannt;Nordrhein-Westfalen;4278;2012;Nein;Nein;Erkrather Str. 220 a-c;40233;Düsseldorf;https://www.ist-hochschule.de +Düsseldorf KuAk;Kunstakademie Düsseldorf;Künstlerische Hochschulen;öffentlich-rechtlich;Nordrhein-Westfalen;546;1814;Ja;Nein;Eiskellerstraße 1;40213;Düsseldorf;http://www.kunstakademie-duesseldorf.de +Düsseldorf U;Heinrich-Heine-Universität Düsseldorf;Universitäten;öffentlich-rechtlich;Nordrhein-Westfalen;29218;1965;Ja;Ja;Universitätsstraße 1;40225;Düsseldorf;http://www.hhu.de +Eberswalde FH Gesundheit;Hochschule für Gesundheitsfachberufe Eberswalde;Fachhochschulen / HAW;privat, staatlich anerkannt;Brandenburg;;2023;Nein;Nein;Schicklerstraße 20;16225;Eberswalde;https://gesundheit-hochschule.de/ +Eberswalde H;Hochschule für nachhaltige Entwicklung Eberswalde;Fachhochschulen / HAW;öffentlich-rechtlich;Brandenburg;2297;1830;Nein;Nein;Schicklerstr. 5;16225;Eberswalde;https://www.hnee.de/ +Eichstätt - Ingolstadt U;Katholische Universität Eichstätt - Ingolstadt;Universitäten;kirchlich, staatlich anerkannt;Bayern;4800;1980;Ja;Ja;Ostenstraße 26;85072;Eichstätt;http://www.ku.de +Elmshorn FH Nordakademie;NORDAKADEMIE Hochschule der Wirtschaft;Fachhochschulen / HAW;privat, staatlich anerkannt;Schleswig-Holstein;2481;1992;Nein;Nein;Köllner Chaussee 11;25337;Elmshorn;https://www.nordakademie.de +Elstal ThH;Theologische Hochschule Elstal;Fachhochschulen / HAW;kirchlich, staatlich anerkannt;Brandenburg;39;1880;Nein;Nein;Johann-Gerhard-Oncken-Straße 7;14641;Wustermark;http://www.th-elstal.de/ +Emden/Leer H;Hochschule Emden/Leer;Fachhochschulen / HAW;öffentlich-rechtlich;Niedersachsen;4264;2009;Nein;Nein;Constantiaplatz 4;26723;Emden;http://www.hs-emden-leer.de/ +Erfurt FH;Fachhochschule Erfurt;Fachhochschulen / HAW;öffentlich-rechtlich;Thüringen;4063;1991;Nein;Nein;Altonaer Straße 25;99085;Erfurt;http://www.fh-erfurt.de +Erfurt HMU;HMU Health and Medical University;Hochschulen eigenen Typs;privat, staatlich anerkannt;Thüringen;1433;2019;Nein;Nein;Nordhäuser Straße 74;99089;Erfurt;https://www.health-and-medical-university.de +Erfurt IU;IU Internationale Hochschule;Fachhochschulen / HAW;privat, staatlich anerkannt;Thüringen;116027;1998;Nein;Nein;Juri-Gagarin-Ring 152;99084;Erfurt;https://www.iu.de/ +Erfurt U;Universität Erfurt;Universitäten;öffentlich-rechtlich;Thüringen;5795;1994;Ja;Ja;Nordhäuser Straße 63;99089;Erfurt;http://www.uni-erfurt.de +Erlangen-Nürnberg U;Friedrich-Alexander-Universität Erlangen-Nürnberg;Universitäten;öffentlich-rechtlich;Bayern;38960;1743;Ja;Ja;Schlossplatz 4;91054;Erlangen;http://www.fau.de +Essen FOM;FOM Hochschule für Oekonomie & Management - University of Applied Sciences;Fachhochschulen / HAW;privat, staatlich anerkannt;Nordrhein-Westfalen;47191;1993;Nein;Nein;Leimkugelstraße 6;45141;Essen;https://www.fom.de +Essen HBK;Hochschule der bildenden Künste (HBK) Essen;Künstlerische Hochschulen;privat, staatlich anerkannt;Nordrhein-Westfalen;322;2013;Nein;Nein;Prinz-Friedrich-Str. 28 A;45257;Essen;http://hbk-essen.de/ +Essen UdK;Folkwang Universität der Künste;Künstlerische Hochschulen;öffentlich-rechtlich;Nordrhein-Westfalen;1625;1927;Ja;Ja;Klemensborn 39;45239;Essen;http://www.folkwang-uni.de +Esslingen H;Hochschule Esslingen;Fachhochschulen / HAW;öffentlich-rechtlich;Baden-Württemberg;6594;1868;Nein;Nein;Kanalstraße 33;73728;Esslingen;http://www.hs-esslingen.de +Ewersbach ThH;Theologisches Hochschule Ewersbach;Fachhochschulen / HAW;kirchlich, staatlich anerkannt;Hessen;47;1912;Nein;Nein;Jahnstraße 49-53;35716;Dietzhölztal;http://th-ewersbach.de +Flensburg H;Hochschule Flensburg;Fachhochschulen / HAW;öffentlich-rechtlich;Schleswig-Holstein;3355;1886;Nein;Nein;Kanzleistraße 91-93;24943;Flensburg;http://www.hs-flensburg.de +Flensburg U;Europa-Universität Flensburg;Universitäten;öffentlich-rechtlich;Schleswig-Holstein;5998;1946;Ja;Ja;Auf dem Campus 1;24943;Flensburg;http://www.uni-flensburg.de +Frankfurt am Main FH;Frankfurt University of Applied Sciences;Fachhochschulen / HAW;öffentlich-rechtlich;Hessen;15297;1971;Ja;Nein;Nibelungenplatz 1;60318;Frankfurt am Main;www.frankfurt-university.de +Frankfurt am Main FHProvadis;Provadis School of International Management and Technology;Fachhochschulen / HAW;privat, staatlich anerkannt;Hessen;870;2003;Nein;Nein;Rudolf-Amthauer-Straße;65926;Frankfurt am Main;http://www.provadis-hochschule.de/ +Frankfurt am Main FSFM;Frankfurt School of Finance & Management;Universitäten;privat, staatlich anerkannt;Hessen;4381;1990;Ja;Nein;Adickesallee 32-34;60322;Frankfurt am Main;http://www.frankfurt-school.de/home +Frankfurt am Main HfBK;Hochschule für Bildende Künste (Städelschule);Künstlerische Hochschulen;öffentlich-rechtlich;Hessen;140;1817;Nein;Nein;Dürerstraße 10;60596;Frankfurt am Main;http://www.staedelschule.de +Frankfurt am Main HfM;Hochschule für Musik und Darstellende Kunst Frankfurt am Main;Künstlerische Hochschulen;öffentlich-rechtlich;Hessen;971;1878;Ja;Nein;Eschersheimer Landstraße 29-39;60322;Frankfurt am Main;https://www.hfmdk-frankfurt.de +Frankfurt am Main PhThH;Philosophisch-Theologische Hochschule Sankt Georgen Frankfurt am Main;Universitäten;kirchlich, staatlich anerkannt;Hessen;221;1926;Ja;Ja;Offenbacher Landstraße 224;60599;Frankfurt am Main;http://www.sankt-georgen.de +Frankfurt am Main ToU;Tomorrow University of Applied Sciences;Fachhochschulen / HAW;privat, staatlich anerkannt;Hessen;;2021;Nein;Nein;Platz der Einheit 2;60327;Frankfurt am Main;https://www.tomorrow-university +Frankfurt am Main U;Johann Wolfgang Goethe-Universität, Frankfurt am Main;Universitäten;öffentlich-rechtlich;Hessen;41107;1914;Ja;Ja;Theodor-W.-Adorno-Platz 1;60323;Frankfurt am Main;http://www.uni-frankfurt.de +Frankfurt am Main UoL;University of Labour;Fachhochschulen / HAW;privat, staatlich anerkannt;Hessen;17;2021;Nein;Nein;Eschersheimer Landstr. 155-157;60323;Frankfurt am Main;https://www.university-of-labour.de/ +Frankfurt (Oder) U;Europa-Universität Viadrina Frankfurt (Oder);Universitäten;öffentlich-rechtlich;Brandenburg;4230;1991;Ja;Ja;Große Scharrnstraße 59;15230;Frankfurt (Oder);https://www.europa-uni.de +Freiberg TUBergAk;Technische Universität Bergakademie Freiberg;Universitäten;öffentlich-rechtlich;Sachsen;4199;1765;Ja;Ja;Akademiestraße 6;09599;Freiberg;http://tu-freiberg.de +Freiburg EvHS;Evangelische Hochschule Freiburg, staatlich anerkannte Hochschule der Evangelischen Landeskirche in Baden;Fachhochschulen / HAW;kirchlich, staatlich anerkannt;Baden-Württemberg;898;1971;Nein;Nein;Bugginger Straße 38;79114;Freiburg;https://www.eh-freiburg.de +Freiburg HfM;Hochschule für Musik Freiburg im Breisgau;Künstlerische Hochschulen;öffentlich-rechtlich;Baden-Württemberg;627;1946;Ja;Ja;Mendelssohn-Bartholdy-Platz 1;79102;Freiburg;https://www.mh-freiburg.de +Freiburg KathHS;Katholische Hochschule Freiburg, staatlich anerkannte Hochschule - Catholic University of Applied Sciences;Fachhochschulen / HAW;kirchlich, staatlich anerkannt;Baden-Württemberg;1886;1971;Nein;Nein;Karlstraße 63;79104;Freiburg;www.kh-freiburg.de +Freiburg PH;Pädagogische Hochschule Freiburg;Universitäten;öffentlich-rechtlich;Baden-Württemberg;5013;1962;Ja;Ja;Kunzenweg 21;79117;Freiburg;http://www.ph-freiburg.de +Freiburg U;Albert-Ludwigs-Universität Freiburg im Breisgau;Universitäten;öffentlich-rechtlich;Baden-Württemberg;24197;1457;Ja;Ja;Fahnenbergplatz;79085;Freiburg;https://www.uni-freiburg.de +Friedensau ThH;Theologische Hochschule Friedensau;Universitäten;kirchlich, staatlich anerkannt;Sachsen-Anhalt;224;1899;Nein;Nein;An der Ihle 19;39291;Friedensau;https://www.thh-friedensau.de/ +Friedrichshafen ZU;Zeppelin Universität - Hochschule zwischen Wirtschaft, Kultur und Politik;Universitäten;privat, staatlich anerkannt;Baden-Württemberg;667;2003;Ja;Ja;Am Seemoser Horn 20;88045;Friedrichshafen;http://www.zu.de +Fulda H;Hochschule Fulda - University of Applied Sciences;Fachhochschulen / HAW;öffentlich-rechtlich;Hessen;8963;1974;Ja;Nein;Leipziger Straße 123;36037;Fulda;www.hs-fulda.de +Fulda ThFak;Theologische Fakultät Fulda;Universitäten;kirchlich, staatlich anerkannt;Hessen;13;1734;Ja;Ja;Eduard-Schick-Platz 2;36037;Fulda;http://www.thf-fulda.de +Fürth WLH;SRH Wilhelm Löhe Hochschule;Fachhochschulen / HAW;privat, staatlich anerkannt;Bayern;417;;Nein;Nein;Merkurstraße 19, Südstadtpark;90763;Fürth;https://www.srh-hochschule-fuerth.de/ +Furtwangen H;Hochschule Furtwangen - Informatik, Technik, Wirtschaft, Medien, Gesundheit;Fachhochschulen / HAW;öffentlich-rechtlich;Baden-Württemberg;4833;1850;Nein;Nein;Robert-Gerwig-Platz 1;78120;Furtwangen;http://www.hs-furtwangen.de +Geisenheim H;Hochschule Geisenheim;Hochschulen eigenen Typs;öffentlich-rechtlich;Hessen;1723;2013;Ja;Nein;Von-Lade-Straße 1;65366;Geisenheim;http://www.hs-geisenheim.de +Gera-Eisenach DH;Duale Hochschule Gera-Eisenach;Hochschulen eigenen Typs;öffentlich-rechtlich;Thüringen;1395;2016;Nein;Nein;Weg der Freundschaft 4;07546;Gera;https://www.dhge.de/ +Gera H;SRH Hochschule für Gesundheit;Fachhochschulen / HAW;privat, staatlich anerkannt;Thüringen;1434;2007;Nein;Nein;Neue Straße 28 - 30;07548;Gera;https://www.srh-gesundheitshochschule.de/ +Giessen FThH;Freie Theologische Hochschule Gießen;Fachhochschulen / HAW;privat, staatlich anerkannt;Hessen;191;1974;Nein;Nein;Rathenaustraße 5-7;35394;Gießen;http://www.fthgiessen.de +Giessen U;Justus-Liebig-Universität Gießen;Universitäten;öffentlich-rechtlich;Hessen;25461;1607;Ja;Ja;Ludwigstraße 23;35390;Gießen;http://www.uni-giessen.de +Göttingen PFH;PFH - Private Hochschule Göttingen;Fachhochschulen / HAW;privat, staatlich anerkannt;Niedersachsen;4775;1995;Nein;Nein;Weender Landstr. 3-7;37073;Göttingen;www.pfh.de +Göttingen U;Georg-August-Universität Göttingen;Universitäten;öffentlich-rechtlich;Niedersachsen;27562;1737;Ja;Ja;Wilhelmsplatz 1;37073;Göttingen;http://www.uni-goettingen.de +Greifswald U;Universität Greifswald;Universitäten;öffentlich-rechtlich;Mecklenburg-Vorpommern;10296;1456;Ja;Ja;Domstraße 11;17489;Greifswald;http://www.uni-greifswald.de +Hachenburg HBundesbank (Verw);Hochschule der Deutschen Bundesbank;Verwaltungshochschule;öffentlich-rechtlich;Rheinland-Pfalz;408;1980;Nein;Nein;Schloss;57627;Hachenburg;http://www.hochschule-bundesbank.de +Hagen FernU;FernUniversität in Hagen;Universitäten;öffentlich-rechtlich;Nordrhein-Westfalen;63326;1974;Ja;Ja;Universitätsstraße 47;58097;Hagen;https://www.fernuni-hagen.de +Halle HfKiM;Evangelische Hochschule für Kirchenmusik;Künstlerische Hochschulen;kirchlich, staatlich anerkannt;Sachsen-Anhalt;59;1926;Nein;Nein;Kleine Ulrichstraße 35;06108;Halle;http://www.ehk-halle.de +Halle KuH;Burg Giebichenstein Kunsthochschule Halle;Künstlerische Hochschulen;öffentlich-rechtlich;Sachsen-Anhalt;1194;1915;Ja;Nein;Neuwerk 7;06108;Halle;http://www.burg-halle.de +Halle-Wittenberg U;Martin-Luther-Universität Halle-Wittenberg;Universitäten;öffentlich-rechtlich;Sachsen-Anhalt;19227;1502;Ja;Ja;Universitätsplatz 11;06108;Halle;www.uni-halle.de +Hamburg AkFinanz (Verw);Norddeutsche Akademie für Finanzen und Steuerrecht;Verwaltungshochschule;öffentlich-rechtlich;Hamburg;349;2010;Nein;Nein;Hammer Steindamm 129;20535;Hamburg;https://www.hamburg.de/fb/norddeutsche-akademie-fuer-finanzen-und-steuerrecht-hamburg/ +Hamburg AkPol (Verw);Akademie der Polizei Hamburg;Verwaltungshochschule;öffentlich-rechtlich;Hamburg;582;2013;Nein;Nein;Carl-Cohn-Straße 39;22297;Hamburg;https://akademie-der-polizei.hamburg.de/fachhochschulbereich +Hamburg BHH;Berufliche Hochschule Hamburg (BHH);Hochschulen eigenen Typs;öffentlich-rechtlich;Hamburg;219;2020;Nein;Nein;Anckelmannstraße 10;20537;Hamburg;https://bhh.hamburg.de/ +Hamburg BLS;Bucerius Law School, Hochschule für Rechtswissenschaft;Universitäten;privat, staatlich anerkannt;Hamburg;849;2000;Ja;Ja;Jungiusstraße 6;20355;Hamburg;https://www.law-school.de +Hamburg EFH;Europäische Fernhochschule Hamburg;Fachhochschulen / HAW;privat, staatlich anerkannt;Hamburg;9646;2003;Nein;Nein;Doberaner Weg 20-22;22143;Hamburg;http://www.euro-fh.de +Hamburg EvH;Evangelische Hochschule für Soziale Arbeit & Diakonie;Fachhochschulen / HAW;kirchlich, staatlich anerkannt;Hamburg;731;1971;Nein;Nein;Horner Weg 170;22111;Hamburg;http://www.ev-hochschule-hh.de +Hamburg FernH;Hamburger Fern-Hochschule, gemeinnützige GmbH;Fachhochschulen / HAW;privat, staatlich anerkannt;Hamburg;14144;1997;Nein;Nein;Alter Teichweg 19;22081;Hamburg;https://www.hfh-fernstudium.de +Hamburg FHBrand;Brand University of Applied Sciences;Fachhochschulen / HAW;privat, staatlich anerkannt;Hamburg;314;2010;Nein;Nein;Lilienstraße 5-9;20095;Hamburg;https://www.brand-university.de/ +Hamburg HAW;Hochschule für Angewandte Wissenschaften Hamburg;Fachhochschulen / HAW;öffentlich-rechtlich;Hamburg;16877;1970;Nein;Nein;Berliner Tor 5;20099;Hamburg;https://www.haw-hamburg.de +Hamburg HCU;HafenCity Universität Hamburg;Universitäten;öffentlich-rechtlich;Hamburg;2518;2006;Ja;Ja;Henning-Voscherau-Platz 1;20457;Hamburg;http://www.hcu-hamburg.de +Hamburg HfBK;Hochschule für Bildende Künste Hamburg;Künstlerische Hochschulen;öffentlich-rechtlich;Hamburg;976;1767;Ja;Nein;Lerchenfeld 2;22081;Hamburg;http://www.hfbk-hamburg.de +Hamburg HfM;Hochschule für Musik und Theater Hamburg;Künstlerische Hochschulen;öffentlich-rechtlich;Hamburg;1380;1950;Ja;Nein;Harvestehuder Weg 12;20148;Hamburg;http://www.hfmt-hamburg.de +Hamburg HSBA;HSBA Hamburg School of Business Administration;Fachhochschulen / HAW;privat, staatlich anerkannt;Hamburg;928;2004;Nein;Nein;Willy-Brandt-Straße 75;20459;Hamburg;http://www.hsba.de +Hamburg KLU;Kühne Logistics University - Wissenschaftliche Hochschule für Logistik und Unternehmensführung;Universitäten;privat, staatlich anerkannt;Hamburg;309;2010;Ja;Nein;Großer Grasbrook 17;20457;Hamburg;www.klu.org +Hamburg MSH;MSH Medical School Hamburg - University of Applied Sciences and Medical University;Hochschulen eigenen Typs;privat, staatlich anerkannt;Hamburg;4845;2009;Nein;Nein;Am Kaiserkai 1;20457;Hamburg;http://www.medicalschool-hamburg.de +Hamburg NBS;NBS Northern Business School – University of Applied Sciences;Fachhochschulen / HAW;privat, staatlich anerkannt;Hamburg;914;2007;Nein;Nein;Holstenhofweg 62;22043;Hamburg;http://www.nbs.de +Hamburg TU;Technische Universität Hamburg;Universitäten;öffentlich-rechtlich;Hamburg;7384;1978;Ja;Ja;Am Schwarzenberg-Campus 3 (E);21073;Hamburg;http://www.tuhh.de/ +Hamburg U;Universität Hamburg;Universitäten;öffentlich-rechtlich;Hamburg;41802;1919;Ja;Ja;Mittelweg 177;20148;Hamburg;http://www.uni-hamburg.de +Hamburg UBw;Helmut-Schmidt-Universität/Universität der Bundeswehr Hamburg;Universitäten;öffentlich-rechtlich;Hamburg;2546;1972;Ja;Ja;Holstenhofweg 85;22043;Hamburg;http://www.hsu-hh.de +Hamm-Lippstadt H;Hochschule Hamm-Lippstadt;Fachhochschulen / HAW;öffentlich-rechtlich;Nordrhein-Westfalen;5134;2009;Nein;Nein;Marker Allee 76-78;59063;Hamm;http://www.hshl.de +Hannover FHDW;Fachhochschule für die Wirtschaft Hannover;Fachhochschulen / HAW;privat, staatlich anerkannt;Niedersachsen;569;1996;Nein;Nein;Freundallee 15;30173;Hannover;http://www.fhdw-hannover.de/ +Hannover H;Hochschule Hannover;Fachhochschulen / HAW;öffentlich-rechtlich;Niedersachsen;8891;1971;Nein;Nein;Expo Plaza 4;30539;Hannover;https://www.hs-hannover.de +Hannover HfMTM;Hochschule für Musik, Theater und Medien Hannover;Künstlerische Hochschulen;öffentlich-rechtlich;Niedersachsen;1395;1897;Ja;Ja;Neues Haus 1;30175;Hannover;http://www.hmtm-hannover.de +Hannover LeibnizFH;Leibniz-Fachhochschule;Fachhochschulen / HAW;privat, staatlich anerkannt;Niedersachsen;584;1920;Nein;Nein;Expo Plaza 11;30539;Hannover;http://www.leibniz-fh.de +Hannover MedH;Medizinische Hochschule Hannover (MHH);Universitäten;öffentlich-rechtlich;Niedersachsen;3923;1963;Ja;Ja;Carl-Neuberg-Str. 1;30625;Hannover;http://www.mh-hannover.de +Hannover TiHo;Stiftung Tierärztliche Hochschule Hannover;Universitäten;öffentlich-rechtlich;Niedersachsen;2347;1778;Ja;Ja;Bünteweg 2;30559;Hannover;http://www.tiho-hannover.de +Hannover U;Gottfried Wilhelm Leibniz Universität Hannover;Universitäten;öffentlich-rechtlich;Niedersachsen;27323;1831;Ja;Ja;Welfengarten 1;30167;Hannover;http://www.uni-hannover.de +Harz H;Hochschule Harz, Hochschule für angewandte Wissenschaften (FH);Fachhochschulen / HAW;öffentlich-rechtlich;Sachsen-Anhalt;3017;1991;Ja;Nein;Friedrichstraße 57-59;38855;Wernigerode;http://www.hs-harz.de +Heidelberg H;SRH Hochschule Heidelberg - Staatlich anerkannte Fachhochschule;Fachhochschulen / HAW;privat, staatlich anerkannt;Baden-Württemberg;3112;1969;Nein;Nein;Ludwig-Guttmann-Str. 6;69123;Heidelberg;http://www.hochschule-heidelberg.de/?utm_source=WKZ-HD5003AA04 +Heidelberg HfJS;Hochschule für Jüdische Studien Heidelberg;Universitäten;privat, staatlich anerkannt;Baden-Württemberg;105;1979;Ja;Nein;Landfriedstraße 12;69117;Heidelberg;http://www.hfjs.eu +Heidelberg HfKiM;Hochschule für Kirchenmusik der Evangelischen Landeskirche in Baden;Künstlerische Hochschulen;kirchlich, staatlich anerkannt;Baden-Württemberg;44;1931;Nein;Nein;Hildastr. 8;69115;Heidelberg;http://www.hfk-heidelberg.de +Heidelberg HFresen;Hochschule Fresenius Heidelberg – staatlich anerkannte Hochschule der Hochschule Fresenius für Internationales Management GmbH;Fachhochschulen / HAW;privat, staatlich anerkannt;Baden-Württemberg;672;2012;Nein;Nein;Sickingenstraße 63-65;69126;Heidelberg;https://www.hs-fresenius.de/standort/heidelberg/?crmid=aBbWvOcDeBjAaAaA +Heidelberg PH;Pädagogische Hochschule Heidelberg;Universitäten;öffentlich-rechtlich;Baden-Württemberg;5271;1904;Ja;Ja;Keplerstraße 87;69120;Heidelberg;http://www.ph-heidelberg.de +Heidelberg U;Ruprecht-Karls-Universität Heidelberg;Universitäten;öffentlich-rechtlich;Baden-Württemberg;29534;1386;Ja;Ja;Seminarstraße 2;69117;Heidelberg;http://www.uni-heidelberg.de +Heilbronn H;Hochschule Heilbronn, Technik, Wirtschaft, Informatik;Fachhochschulen / HAW;öffentlich-rechtlich;Baden-Württemberg;7159;1961;Nein;Nein;Max-Planck-Straße 39;74081;Heilbronn;http://www.hs-heilbronn.de +Herford HfKiM;Hochschule für Kirchenmusik der Evangelischen Kirche von Westfalen;Künstlerische Hochschulen;kirchlich, staatlich anerkannt;Nordrhein-Westfalen;46;1948;Nein;Nein;Parkstr. 6;32049;Herford;https://www.hochschule-kirchenmusik.de +Hermannsburg FIT;Fachhochschule für Interkulturelle Theologie Hermannsburg;Fachhochschulen / HAW;privat, staatlich anerkannt;Niedersachsen;78;2012;Nein;Nein;Missionsstraße 3-5;29320;Hermannsburg;http://www.fh-hermannsburg.de/ +Hessen HFinanz/Recht (Verw);Hessische Hochschule für Finanzen und Rechtspflege Rotenburg a.d. Fulda;Verwaltungshochschule;öffentlich-rechtlich;Hessen;2610;2006;Nein;Nein;Josef-Durstewitz Straße 2-6;36199;Rotenburg;https://studienzentrum-rotenburg.hessen.de/hhfr +Hessen HOeffManagement(Verw);Hessische Hochschule für öffentliches Management und Sicherheit;Verwaltungshochschule;öffentlich-rechtlich;Hessen;4271;2022;Nein;Nein;Schönbergstraße 100;65199;Wiesbaden;https://hoems.hessen.de/ +Hildesheim U;Universität Hildesheim;Universitäten;öffentlich-rechtlich;Niedersachsen;7995;1978;Ja;Ja;Universitätsplatz 1;31141;Hildesheim;https://www.uni-hildesheim.de +Hildesh./Holzm./Göttingen H;HAWK Hochschule für angewandte Wissenschaft und Kunst Hildesheim/Holzminden/Göttingen;Fachhochschulen / HAW;öffentlich-rechtlich;Niedersachsen;6325;1971;Nein;Nein;Hohnsen 4;31134;Hildesheim;https://www.hawk.de/de +Hof H;Hochschule für angewandte Wissenschaften Hof;Fachhochschulen / HAW;öffentlich-rechtlich;Bayern;3822;1994;Nein;Nein;Alfons-Goppel-Platz 1;95028;Hof;http://www.hof-university.de +Hohenheim U;Universität Hohenheim;Universitäten;öffentlich-rechtlich;Baden-Württemberg;8482;1818;Ja;Ja;Schloss Hohenheim 1;70599;Stuttgart;http://www.uni-hohenheim.de +Idstein HFresen;Hochschule Fresenius;Fachhochschulen / HAW;privat, staatlich anerkannt;Hessen;16028;1848;Nein;Nein;Limburger Straße 2;65510;Idstein;https://www.hs-fresenius.de/studienberatung/?crmid=aBbWvOcDaAaAaAaA +Ilmenau TU;Technische Universität Ilmenau;Universitäten;öffentlich-rechtlich;Thüringen;4452;1894;Ja;Ja;Ehrenbergstraße 29;98693;Ilmenau;http://www.tu-ilmenau.de +Ingolstadt TH;Technische Hochschule Ingolstadt;Fachhochschulen / HAW;öffentlich-rechtlich;Bayern;7537;1994;Ja;Nein;Esplanade 10;85049;Ingolstadt;https://www.thi.de +Ismaning HAM;Hochschule für angewandtes Management;Fachhochschulen / HAW;privat, staatlich anerkannt;Bayern;3646;2004;Nein;Nein;Steinheilstraße 4;85737;Ismaning;http://www.fham.de +Jena H;Ernst-Abbe-Hochschule Jena - University of Applied Sciences;Fachhochschulen / HAW;öffentlich-rechtlich;Thüringen;4330;1991;Nein;Nein;Carl-Zeiss-Promenade 2;07745;Jena;https://www.eah-jena.de/ +Jena U;Friedrich-Schiller-Universität Jena;Universitäten;öffentlich-rechtlich;Thüringen;16588;1558;Ja;Ja;Fürstengraben 1;07743;Jena;http://www.uni-jena.de +Kaiserslautern H;Hochschule Kaiserslautern (University of Applied Sciences);Fachhochschulen / HAW;öffentlich-rechtlich;Rheinland-Pfalz;5846;1996;Nein;Nein;Schoenstr. 11;67659;Kaiserslautern;www.hs-kl.de +Kaiserslautern-Landau RPTU;Rheinland-Pfälzische Technische Universität Kaiserslautern-Landau;Universitäten;öffentlich-rechtlich;Rheinland-Pfalz;18520;1970;Ja;Ja;Gottlieb-Daimler-Straße 47;67663;Kaiserslautern;https://www.rptu.de/ +Karlsruhe AkdBK;Staatliche Akademie der Bildenden Künste Karlsruhe;Künstlerische Hochschulen;öffentlich-rechtlich;Baden-Württemberg;362;1854;Ja;Nein;Reinhold-Frank-Straße 67;76133;Karlsruhe;http://www.kunstakademie-karlsruhe.de +Karlsruhe H;Hochschule Karlsruhe - Technik und Wirtschaft;Fachhochschulen / HAW;öffentlich-rechtlich;Baden-Württemberg;6814;1878;Nein;Nein;Moltkestraße 30;76133;Karlsruhe;http://www.h-ka.de +Karlsruhe HfGest;Staatliche Hochschule für Gestaltung Karlsruhe;Künstlerische Hochschulen;öffentlich-rechtlich;Baden-Württemberg;376;1992;Ja;Nein;Lorenzstr. 15;76135;Karlsruhe;http://www.hfg-karlsruhe.de +Karlsruhe HfM;Hochschule für Musik Karlsruhe;Künstlerische Hochschulen;öffentlich-rechtlich;Baden-Württemberg;577;1812;Ja;Nein;Am Schloss Gottesaue 7;76131;Karlsruhe;http://www.hfm-karlsruhe.de +Karlsruhe KIU;Karlshochschule International University - staatlich anerkannte Hochschule der Karlshochschule gemeinnützige GmbH Karlsruhe;Fachhochschulen / HAW;privat, staatlich anerkannt;Baden-Württemberg;361;2005;Nein;Nein;Karlstraße 36 - 38;76133;Karlsruhe;http://www.karlshochschule.de +Karlsruhe PH;Pädagogische Hochschule Karlsruhe;Universitäten;öffentlich-rechtlich;Baden-Württemberg;3552;1962;Ja;Ja;Bismarckstraße 10;76133;Karlsruhe;http://www.ph-karlsruhe.de +Karlsruhe U KIT;Karlsruher Institut für Technologie;Universitäten;öffentlich-rechtlich;Baden-Württemberg;22201;2009;Ja;Ja;Kaiserstraße 12;76131;Karlsruhe;http://www.kit.edu +Kassel CVJM;CVJM-Hochschule;Fachhochschulen / HAW;privat, staatlich anerkannt;Hessen;458;2009;Nein;Nein;Hugo-Preuß-Straße 40;34131;Kassel;http://www.cvjm-hochschule.de/ +Kassel U;Universität Kassel;Universitäten;öffentlich-rechtlich;Hessen;21791;1971;Ja;Ja;Mönchebergstraße 19;34125;Kassel;http://www.uni-kassel.de +Kempten H;Hochschule für angewandte Wissenschaften Kempten;Fachhochschulen / HAW;öffentlich-rechtlich;Bayern;4777;1977;Nein;Nein;Bahnhofstraße 61;87435;Kempten;http://www.hs-kempten.de +Kiel FH;Fachhochschule Kiel;Fachhochschulen / HAW;öffentlich-rechtlich;Schleswig-Holstein;7670;1969;Nein;Nein;Sokratesplatz 1;24149;Kiel;http://www.fh-kiel.de +Kiel KuH;Muthesius Kunsthochschule;Künstlerische Hochschulen;öffentlich-rechtlich;Schleswig-Holstein;541;1994;Ja;Nein;Legienstraße 35;24103;Kiel;http://www.muthesius-kunsthochschule.de/de/ +Kiel U;Christian-Albrechts-Universität zu Kiel;Universitäten;öffentlich-rechtlich;Schleswig-Holstein;25940;1665;Ja;Ja;Christian-Albrechts-Platz 4;24118;Kiel;http://www.uni-kiel.de +Koblenz H;Hochschule Koblenz;Fachhochschulen / HAW;öffentlich-rechtlich;Rheinland-Pfalz;8992;1996;Nein;Nein;Konrad-Zuse-Straße 1;56075;Koblenz;http://www.hs-koblenz.de +Koblenz HfG;Hochschule für Gesellschaftsgestaltung;Hochschulen eigenen Typs;privat, staatlich anerkannt;Rheinland-Pfalz;126;2015;Nein;Nein;Kornpfortstraße 15;56068;Koblenz;https://www.hfgg.de +Koblenz U;Universität Koblenz;Universitäten;öffentlich-rechtlich;Rheinland-Pfalz;9485;1990;Ja;Ja;Universitätsstraße 1;56070;Koblenz;https://www.uni-koblenz.de/de +Köln CBS;CBS International Business School - University of Applied Sciences;Fachhochschulen / HAW;privat, staatlich anerkannt;Nordrhein-Westfalen;2475;1993;Nein;Nein;Bahnstraße 6 - 8;50996;Köln;https://www.cbs.de/ +Köln DSHS;Deutsche Sporthochschule Köln;Universitäten;öffentlich-rechtlich;Nordrhein-Westfalen;6098;1947;Ja;Ja;Am Sportpark Müngersdorf 6;50933;Köln;http://www.dshs-koeln.de +Köln HfMT;Hochschule für Musik und Tanz Köln;Künstlerische Hochschulen;öffentlich-rechtlich;Nordrhein-Westfalen;1398;1845;Ja;Nein;Unter Krahnenbäumen 87;50668;Köln;http://www.hfmt-koeln.de +Köln INU;INU - Innovative University of Applied Sciences;Fachhochschulen / HAW;privat, staatlich anerkannt;Nordrhein-Westfalen;;2022;Nein;Nein;Widdersdorfer Straße 262;50933;Köln;https://www.inu.de/ +Köln KHKT;Kölner Hochschule für Katholische Theologie (KHKT);Universitäten;kirchlich, staatlich anerkannt;Nordrhein-Westfalen;85;;Ja;Nein;Gleuelerstraße 262-268;50935;Köln;www.khkt.de +Köln KolpingH;Kolping Hochschule;Fachhochschulen / HAW;privat, staatlich anerkannt;Nordrhein-Westfalen;19;2019;Nein;Nein;Mevissenstr.3;50668;Köln;https://www.kolping-hochschule.de/ +Köln KuHMedien;Kunsthochschule für Medien Köln;Künstlerische Hochschulen;öffentlich-rechtlich;Nordrhein-Westfalen;413;1990;Ja;Nein;Peter-Welter-Platz 2;50676;Köln;http://www.khm.de +Köln RheinH;Rheinische Hochschule Köln;Fachhochschulen / HAW;privat, staatlich anerkannt;Nordrhein-Westfalen;5817;1958;Nein;Nein;Schaevenstraße 1a-b;50676;Köln;https://www.rh-koeln.de +Köln TH;Technische Hochschule Köln;Fachhochschulen / HAW;öffentlich-rechtlich;Nordrhein-Westfalen;24294;1971;Nein;Nein;Claudiusstraße 1;50678;Köln;http://www.th-koeln.de +Köln U;Universität zu Köln;Universitäten;öffentlich-rechtlich;Nordrhein-Westfalen;48063;1388;Ja;Ja;Albertus-Magnus-Platz;50931;Köln;https://uni-koeln.de +Konstanz AllensbachH;Allensbach Hochschule Konstanz, staatlich anerkannte Hochschule der European Education Group GmbH;Fachhochschulen / HAW;privat, staatlich anerkannt;Baden-Württemberg;640;1996;Nein;Nein;Lohnerhofstraße 2;78467;Konstanz;https://www.allensbach-hochschule.de/ +Konstanz H;Hochschule Konstanz Technik, Wirtschaft und Gestaltung;Fachhochschulen / HAW;öffentlich-rechtlich;Baden-Württemberg;4360;1906;Nein;Nein;Alfred-Wachtel-Straße 8;78462;Konstanz;http://www.htwg-konstanz.de +Konstanz U;Universität Konstanz;Universitäten;öffentlich-rechtlich;Baden-Württemberg;10472;1966;Ja;Ja;Universitätsstraße 10;78464;Konstanz;https://www.uni-konstanz.de/ +Landshut H;Hochschule Landshut - Hochschule für angewandte Wissenschaften;Fachhochschulen / HAW;öffentlich-rechtlich;Bayern;4674;1978;Nein;Nein;Am Lurzenhof 1;84036;Landshut;http://www.haw-landshut.de +Leipzig HfGuB;Hochschule für Grafik und Buchkunst Leipzig;Künstlerische Hochschulen;öffentlich-rechtlich;Sachsen;589;1764;Ja;Nein;Wächterstraße 11;04107;Leipzig;http://www.hgb-leipzig.de +Leipzig HHL;HHL Leipzig Graduate School of Management;Universitäten;privat, staatlich anerkannt;Sachsen;739;1898;Ja;Ja;Jahnallee 59;04109;Leipzig;http://www.hhl.de +Leipzig HMT;Hochschule für Musik und Theater Felix Mendelssohn Bartholdy Leipzig;Künstlerische Hochschulen;öffentlich-rechtlich;Sachsen;1129;1843;Ja;Nein;Grassistraße 8;04107;Leipzig;http://www.hmt-leipzig.de +Leipzig HTWK;Hochschule für Technik, Wirtschaft und Kultur Leipzig;Fachhochschulen / HAW;öffentlich-rechtlich;Sachsen;6843;1992;Nein;Nein;Karl-Liebknecht-Straße 132;04277;Leipzig;http://www.htwk-leipzig.de +Leipzig U;Universität Leipzig;Universitäten;öffentlich-rechtlich;Sachsen;29582;1409;Ja;Ja;Ritterstraße 26;04109;Leipzig;http://www.uni-leipzig.de +Lübeck HfM;Musikhochschule Lübeck;Künstlerische Hochschulen;öffentlich-rechtlich;Schleswig-Holstein;416;1973;Ja;Nein;Große Petersgrube 21;23552;Lübeck;http://www.mh-luebeck.de +Lübeck TH;Technische Hochschule Lübeck;Fachhochschulen / HAW;öffentlich-rechtlich;Schleswig-Holstein;5138;1808;Nein;Nein;Mönkhofer Weg 239;23562;Lübeck;https://www.th-luebeck.de/ +Lübeck U;Universität zu Lübeck;Universitäten;öffentlich-rechtlich;Schleswig-Holstein;5958;1964;Ja;Ja;Ratzeburger Allee 160;23562;Lübeck;http://www.uni-luebeck.de +Ludwigsburg EvH;Evangelische Hochschule Ludwigsburg, Hochschule für Soziale ;;;;;;;;;;; +;;;;;;;;;;;; +Fachhochschulen / HAW;kirchlich, staatlich anerkannt;Baden-Württemberg;1279;1999;Nein;Nein;Paulusweg 6;71638;Ludwigsburg;;; +Ludwigsburg PH;Pädagogische Hochschule Ludwigsburg;Universitäten;öffentlich-rechtlich;Baden-Württemberg;5988;1962;Ja;Ja;Reuteallee 46;71634;Ludwigsburg;http://www.ph-ludwigsburg.de +Ludwigshafen HWG;Hochschule für Wirtschaft und Gesellschaft Ludwigshafen ;Fachhochschulen / HAW;öffentlich-rechtlich;Rheinland-Pfalz;4400;1965;Nein;Nein;Ernst-Boehe-Str. 4;67059;Ludwigshafen;http://www.hwg-lu.de +Lüneburg U;Leuphana Universität Lüneburg;Universitäten;öffentlich-rechtlich;Niedersachsen;9268;1946;Ja;Ja;Universitätsallee 1;21335;Lüneburg;https://www.leuphana.de/services/studierendenservice/infoportal-erstauskunft-zum-studium.html +Magdeburg SH;Steinbeis Hochschule;Fachhochschulen / HAW;privat, staatlich anerkannt;Sachsen-Anhalt;4626;1998;Nein;Nein;Hegelstraße 39;39104;Magdeburg;https://www.steinbeis-hochschule.de/ +Magdeburg-Stendal H;Hochschule Magdeburg-Stendal;Fachhochschulen / HAW;öffentlich-rechtlich;Sachsen-Anhalt;5258;1991;Ja;Nein;Breitscheidstraße 2;39114;Magdeburg;http://www.h2.de +Magdeburg U;Otto-von-Guericke-Universität Magdeburg;Universitäten;öffentlich-rechtlich;Sachsen-Anhalt;12490;1993;Ja;Ja;Universitätsplatz 2;39106;Magdeburg;http://www.ovgu.de +Mainz H;Hochschule Mainz;Fachhochschulen / HAW;öffentlich-rechtlich;Rheinland-Pfalz;5621;1996;Nein;Nein;Lucy-Hillebrand-Straße 2;55128;Mainz;https://www.hs-mainz.de/ +Mainz KathH;Katholische Hochschule Mainz Catholic University of Applied Sciences;Fachhochschulen / HAW;kirchlich, staatlich anerkannt;Rheinland-Pfalz;1543;1972;Nein;Nein;Saarstraße 3;55122;Mainz;https://www.kh-mz.de/katholische-hochschule/ +Mainz U;Johannes Gutenberg-Universität Mainz;Universitäten;öffentlich-rechtlich;Rheinland-Pfalz;29617;1477;Ja;Ja;Saarstraße 21;55122;Mainz;http://www.uni-mainz.de +Mannheim H;Hochschule Mannheim;Fachhochschulen / HAW;öffentlich-rechtlich;Baden-Württemberg;5034;1898;Nein;Nein;Paul-Wittsack-Straße 10;68163;Mannheim;http://www.hs-mannheim.de +Mannheim HdBA (Verw);Hochschule der Bundesagentur für Arbeit - Staatlich anerkannte Hochschule für angewandte Wissenschaft in Mannheim und Schwerin (University of Applied Labour Studies of the Federal Employment Agency);Verwaltungshochschule;öffentlich-rechtlich;Baden-Württemberg;1514;2006;Nein;Nein;Seckenheimer Landstraße 16;68163;Mannheim;http://www.hdba.de/ +Mannheim HdWM;Hochschule der Wirtschaft für Management;Fachhochschulen / HAW;privat, staatlich anerkannt;Baden-Württemberg;290;2011;Nein;Nein;Oskar-Meixner-Straße 4-6;68163;Mannheim;http://www.hdwm.de +Mannheim HfM;Staatliche Hochschule für Musik und Darstellende Kunst Mannheim;Künstlerische Hochschulen;öffentlich-rechtlich;Baden-Württemberg;575;1971;Ja;Nein;N 7, 18;68161;Mannheim;http://www.muho-mannheim.de +Mannheim U;Universität Mannheim;Universitäten;öffentlich-rechtlich;Baden-Württemberg;11397;1907;Ja;Ja;Schloss;68161;Mannheim;http://www.uni-mannheim.de +Marburg EHTabor;Evangelische Hochschule Tabor;Fachhochschulen / HAW;privat, staatlich anerkannt;Hessen;165;1909;Nein;Nein;Dürerstraße 43;35039;Marburg;www.eh-tabor.de +Marburg HArchiv (Verw);Archivschule Marburg - Hochschule für Archivwissenschaft;Verwaltungshochschule;öffentlich-rechtlich;Hessen;73;;Nein;Nein;Bismarckstraße 32;35037;Marburg;https://www.archivschule.de/DE/ausbildung/gehobener-dienst/ +Marburg U;Philipps-Universität Marburg;Universitäten;öffentlich-rechtlich;Hessen;21237;1527;Ja;Ja;Biegenstraße 10;35037;Marburg;http://www.uni-marburg.de +Mecklenburg-Vorp. FHVerw (Verw);Fachhochschule für öffentliche Verwaltung, Polizei und Rechtspflege des Landes Mecklenburg-Vorpommern;Verwaltungshochschule;öffentlich-rechtlich;Mecklenburg-Vorpommern;669;;Nein;Nein;Goldberger Straße 12-13;18273;Güstrow;http://www.fh-guestrow.de +Merseburg H;Hochschule Merseburg;Fachhochschulen / HAW;öffentlich-rechtlich;Sachsen-Anhalt;2953;1992;Ja;Nein;Eberhard-Leibnitz-Straße 2;06217;Merseburg;http://www.hs-merseburg.de +Mittelhessen THM;Technische Hochschule Mittelhessen - THM;Fachhochschulen / HAW;öffentlich-rechtlich;Hessen;16795;1971;Nein;Nein;Wiesenstraße 14;35390;Gießen;http://www.thm.de +Mittweida H;Hochschule Mittweida, University of Applied Sciences;Fachhochschulen / HAW;öffentlich-rechtlich;Sachsen;6079;1867;Nein;Nein;Technikumplatz 17;09648;Mittweida;www.hs-mittweida.de +München AkdBK;Akademie der Bildenden Künste München;Künstlerische Hochschulen;öffentlich-rechtlich;Bayern;754;1808;Ja;Nein;Akademiestraße 2-4;80799;München;http://www.adbk.de/ +München HAW;Hochschule für angewandte Wissenschaften München;Fachhochschulen / HAW;öffentlich-rechtlich;Bayern;18062;1971;Nein;Nein;Lothstr. 34;80335;München;http://www.hm.edu +München HDBW;Hochschule der Bayerischen Wirtschaft für angewandte Wissenschaften - HDBW;Fachhochschulen / HAW;privat, staatlich anerkannt;Bayern;469;2012;Nein;Nein;Konrad-Zuse-Platz 8;81829;München;www.hdbw-hochschule.de +München HFF;Hochschule für Fernsehen und Film München;Künstlerische Hochschulen;öffentlich-rechtlich;Bayern;398;1966;Ja;Nein;Bernd-Eichinger-Platz 1;80333;München;http://www.hff-muc.de +München HMT;Hochschule für Musik und Theater München;Künstlerische Hochschulen;öffentlich-rechtlich;Bayern;1182;1830;Ja;Nein;Arcisstraße 12;80333;München;http://www.hmtm.de +München HPhil;Hochschule für Philosophie;Universitäten;kirchlich, staatlich anerkannt;Bayern;419;1925;Ja;Ja;Kaulbachstraße 31;80539;München;http://www.hfph.de +München IH;Internationale Hochschule SDI München - Hochschule für angewandte Wissenschaften;Fachhochschulen / HAW;privat, staatlich anerkannt;Bayern;286;2007;Nein;Nein;Baierbrunner Straße 28;81379;München;https://www.sdi-muenchen.de/hochschule/ +München KathH;Katholische Stiftungshochschule für angewandte Wissenschaften München - Hochschule der Kirchlichen Stiftung des öffentlichen Rechts Katholische Bildungsstätten für Sozialberufe in Bayern;Fachhochschulen / HAW;kirchlich, staatlich anerkannt;Bayern;2401;1971;Nein;Nein;Preysingstraße 95;81667;München;http://www.ksh-muenchen.de +München MBS;Munich Business School - Staatlich anerkannte private Fachhochschule;Fachhochschulen / HAW;privat, staatlich anerkannt;Bayern;613;1991;Nein;Nein;Elsenheimerstraße 61;80687;München;http://www.munich-business-school.de +München TUM;Technische Universität München;Universitäten;öffentlich-rechtlich;Bayern;54575;1868;Ja;Ja;Arcisstraße 21;80333;München;http://www.tum.de +München U;Ludwig-Maximilians-Universität München;Universitäten;öffentlich-rechtlich;Bayern;52086;1472;Ja;Ja;Geschwister-Scholl-Platz 1;80539;München;http://www.lmu.de +München UBw;Universität der Bundeswehr München;Universitäten;öffentlich-rechtlich;Bayern;3456;1973;Ja;Ja;Werner-Heisenberg-Weg 39;85577;Neubiberg;http://www.unibw.de +Münster FH;FH Münster University of Applied Sciences;Fachhochschulen / HAW;öffentlich-rechtlich;Nordrhein-Westfalen;15184;1971;Nein;Nein;Hüfferstr. 27;48149;Münster;https://www.fh-muenster.de/index.php +Münster KuAk;Kunstakademie Münster, Hochschule für Bildende Künste;Künstlerische Hochschulen;öffentlich-rechtlich;Nordrhein-Westfalen;375;1971;Ja;Ja;Leonardo-Campus 2;48149;Münster;https://www.kunstakademie-muenster.de/hochschule/organisation-und-verwaltung +Münster PhThH;Philosophisch-Theologische Hochschule Münster - Kirchlich und staatlich anerkannte Hochschule in Trägerschaft der PTH Philosophisch-Theologische Hochschule Münster gemeinnützige GmbH;Universitäten;kirchlich, staatlich anerkannt;Nordrhein-Westfalen;7;1971;Nein;Nein;Kapuzinerstr. 27;48149;Münster;http://www.pth-muenster.de +Münster U;Universität Münster;Universitäten;öffentlich-rechtlich;Nordrhein-Westfalen;42458;1780;Ja;Ja;Schlossplatz 2;48149;Münster;https://www.uni-muenster.de +Neubrandenburg H;Hochschule Neubrandenburg - University of Applied Sciences;Fachhochschulen / HAW;öffentlich-rechtlich;Mecklenburg-Vorpommern;2082;1991;Nein;Nein;Brodaer Straße 2;17033;Neubrandenburg;http://www.hs-nb.de +Neuendettelsau KiH;Augustana-Hochschule Neuendettelsau;Universitäten;kirchlich, staatlich anerkannt;Bayern;97;1947;Ja;Ja;Waldstraße 11;91564;Neuendettelsau;http://www.augustana.de +Neuruppin MHB;Medizinische Hochschule Brandenburg Theodor Fontane;Universitäten;privat, staatlich anerkannt;Brandenburg;819;2014;Nein;Nein;Fehrbelliner Str. 38;16816;Neuruppin;http://www.mhb-fontane.de +Neu-Ulm H;Hochschule für angewandte Wissenschaften Neu-Ulm;Fachhochschulen / HAW;öffentlich-rechtlich;Bayern;4077;1994;Nein;Nein;Wileystraße 1;89231;Neu-Ulm;https://www.hnu.de +Niederrhein H;Hochschule Niederrhein;Fachhochschulen / HAW;öffentlich-rechtlich;Nordrhein-Westfalen;13179;1971;Nein;Nein;Reinarzstraße 49;47805;Krefeld;http://www.hs-niederrhein.de +Niedersachsen HRecht (Verw);Norddeutsche Hochschule für Rechtspflege - Niedersachsen;Verwaltungshochschule;öffentlich-rechtlich;Niedersachsen;404;;Nein;Nein;Godehardspl. 6;31134;Hildesheim;http://www.hr-nord.niedersachsen.de/index.php?id=49 +Niedersachsen HVerw (Verw);Kommunale Hochschule für Verwaltung in Niedersachsen;Verwaltungshochschule;öffentlich-rechtlich;Niedersachsen;1561;2007;Nein;Nein;Wielandstraße 8;30169;Hannover;http://www.nsi-hsvn.de/ +Niedersachsen PolAk (Verw);Polizeiakademie Niedersachsen;Verwaltungshochschule;öffentlich-rechtlich;Niedersachsen;;;Nein;Nein;Bürgermeister-Stahn-Wall 9;31582;Nienburg;https://www.pa.polizei-nds.de/startseite/ +Niedersachsen SteuerAk (Verw);Steuerakademie Niedersachsen;Verwaltungshochschule;öffentlich-rechtlich;Niedersachsen;;2006;Nein;Nein;Bahnhofstraße 5;31707;Bad Eilsen;https://www.steuerakademie.niedersachsen.de/startseite/ +Nordhausen H;Hochschule Nordhausen;Fachhochschulen / HAW;öffentlich-rechtlich;Thüringen;2035;1997;Nein;Nein;Weinberghof 4;99734;Nordhausen;http://www.hs-nordhausen.de +Nordhessen FH;DIPLOMA Hochschule - Private Fachhochschule Nordhessen;Fachhochschulen / HAW;privat, staatlich anerkannt;Hessen;7775;1997;Nein;Nein;Am Hegeberg 2;37242;Bad Sooden-Allendorf;http://www.diploma.de +Nordrhein-Westfalen DHPol (Verw);Deutsche Hochschule der Polizei;Verwaltungshochschule;öffentlich-rechtlich;Nordrhein-Westfalen;434;2008;Ja;Nein;Zum Roten Berge 18;48165;Münster;https://www.dhpol.de +Nordrhein-Westfalen FHRecht (Verw);Fachhochschule für Rechtspflege Nordrhein-Westfalen;Verwaltungshochschule;öffentlich-rechtlich;Nordrhein-Westfalen;887;1976;Nein;Nein;Schleidtalstraße 3;53902;Bad Münstereifel;https://www.fhr.nrw.de/ +Nordrhein-Westfalen HFinanz (Verw);Hochschule für Finanzen NRW;Verwaltungshochschule;öffentlich-rechtlich;Nordrhein-Westfalen;2795;1976;Nein;Nein;Schloßstraße;59394;Nordkirchen;https://www.finanzverwaltung.nrw.de/de/duales-studium-der-hsf-nrw +Nordrhein-Westfalen HSPV (Verw);Hochschule für Polizei und öffentliche Verwaltung Nordrhein-Westfalen;Verwaltungshochschule;öffentlich-rechtlich;Nordrhein-Westfalen;13078;1976;Nein;Nein;Haidekamp 73;45886;Gelsenkirchen;https://www.hspv.nrw.de/ +Nordrhein-Westfalen KathH;Katholische Hochschule Nordrhein-Westfalen - Catholic University of Applied Sciences;Fachhochschulen / HAW;kirchlich, staatlich anerkannt;Nordrhein-Westfalen;5440;1971;Nein;Nein;Wörthstraße 10;50668;Köln;http://www.katho-nrw.de +Nordrhein-Westfalen SRH;SRH Hochschule in Nordrhein-Westfalen;Fachhochschulen / HAW;privat, staatlich anerkannt;Nordrhein-Westfalen;740;2005;Nein;Nein;Platz der Deutschen Einheit 1;59065;Hamm;https://www.srh-hochschule-nrw.de/?utm_source=wkz-HA91531IM +Nürnberg AkdBK;Akademie der Bildenden Künste Nürnberg;Künstlerische Hochschulen;öffentlich-rechtlich;Bayern;310;1662;Nein;Nein;Bingstraße 60;90480;Nürnberg;http://www.adbk-nuernberg.de +Nürnberg EvH;Evangelische Hochschule für angewandte Wissenschaften - Evangelische Fachhochschule Nürnberg;Fachhochschulen / HAW;kirchlich, staatlich anerkannt;Bayern;1211;1927;Nein;Nein;Bärenschanzstraße 4;90429;Nürnberg;http://www.evhn.de/ +Nürnberg HfM;Hochschule für Musik Nürnberg;Künstlerische Hochschulen;öffentlich-rechtlich;Bayern;333;2008;Ja;Nein;Veilhofstraße 34;90489;Nürnberg;http://www.hfm-nuernberg.de +Nürnberg TH;Technische Hochschule Nürnberg Georg Simon Ohm;Fachhochschulen / HAW;öffentlich-rechtlich;Bayern;12355;1823;Nein;Nein;Keßlerplatz 12;90489;Nürnberg;https://www.th-nuernberg.de/ +Nürnberg TU;Technische Universität Nürnberg;Universitäten;öffentlich-rechtlich;Bayern;18;2021;Ja;Nein;Ulmenstraße 52i;90443;Nürnberg;https://www.utn.de/ +Nürtingen-Geislingen H;Hochschule für Wirtschaft und Umwelt Nürtingen-Geislingen;Fachhochschulen / HAW;öffentlich-rechtlich;Baden-Württemberg;5066;1949;Nein;Nein;Neckarsteige 6-10;72622;Nürtingen;http://www.hfwu.de +Oberursel LuthThH;Lutherische Theologische Hochschule Oberursel;Universitäten;kirchlich, staatlich anerkannt;Hessen;17;1947;Nein;Nein;Altkönigstraße 150;61440;Oberursel;http://www.lthh-oberursel.de +Offenbach HfGest;Hochschule für Gestaltung Offenbach;Künstlerische Hochschulen;öffentlich-rechtlich;Hessen;795;1970;Ja;Nein;Schloßstraße 31;63065;Offenbach;http://www.hfg-offenbach.de +Offenburg H;Hochschule für Technik, Wirtschaft und Medien Offenburg;Fachhochschulen / HAW;öffentlich-rechtlich;Baden-Württemberg;3761;1964;Nein;Nein;Badstraße 24;77652;Offenburg;http://www.hs-offenburg.de +Oldenburg U;Carl von Ossietzky Universität Oldenburg;Universitäten;öffentlich-rechtlich;Niedersachsen;15335;1973;Ja;Ja;Ammerländer Heerstraße 114-118;26129;Oldenburg;http://www.uol.de +Osnabrück H;Hochschule Osnabrück;Fachhochschulen / HAW;öffentlich-rechtlich;Niedersachsen;13317;1971;Nein;Nein;Albrechtstraße 30;49076;Osnabrück;http://www.hs-osnabrueck.de +Osnabrück U;Universität Osnabrück;Universitäten;öffentlich-rechtlich;Niedersachsen;13487;1973;Ja;Ja;Neuer Graben/Schloss;49074;Osnabrück;http://www.uni-osnabrueck.de +Ostfalia H;Hochschule Braunschweig/Wolfenbüttel, Ostfalia Hochschule für angewandte Wissenschaften;Fachhochschulen / HAW;öffentlich-rechtlich;Niedersachsen;10775;1971;Nein;Nein;Salzdahlumer Straße 46/48;38302;Wolfenbüttel;http://www.ostfalia.de +Ostwestfalen-Lippe TH;Technische Hochschule Ostwestfalen-Lippe;Fachhochschulen / HAW;öffentlich-rechtlich;Nordrhein-Westfalen;5960;1971;Nein;Nein;Campusallee 12;32657;Lemgo;http://www.th-owl.de +Ottersberg H;Hochschule für Künste im Sozialen, Ottersberg;Fachhochschulen / HAW;privat, staatlich anerkannt;Niedersachsen;325;1967;Nein;Nein;Große Straße 107;28870;Ottersberg;https://www.hks-ottersberg.de +Paderborn FHDW;Fachhochschule der Wirtschaft;Fachhochschulen / HAW;privat, staatlich anerkannt;Nordrhein-Westfalen;2021;1993;Nein;Nein;Fürstenallee 5;33102;Paderborn;https://www.fhdw.de +Paderborn ThFak;Theologische Fakultät Paderborn;Universitäten;kirchlich, staatlich anerkannt;Nordrhein-Westfalen;60;1614;Ja;Ja;Kamp 6;33098;Paderborn;http://www.thf-paderborn.de/ +Paderborn U;Universität Paderborn;Universitäten;öffentlich-rechtlich;Nordrhein-Westfalen;17228;1972;Ja;Ja;Warburger Straße 100;33098;Paderborn;http://www.uni-paderborn.de +Passau U;Universität Passau;Universitäten;öffentlich-rechtlich;Bayern;10881;1973;Ja;Ja;Innstraße 41;94032;Passau;http://www.uni-passau.de +Pforzheim H;Hochschule Pforzheim - Gestaltung, Technik, Wirtschaft und Recht;Fachhochschulen / HAW;öffentlich-rechtlich;Baden-Württemberg;5659;1877;Nein;Nein;Tiefenbronner Straße 65;75175;Pforzheim;http://www.hs-pforzheim.de/ +Potsdam-Babelsberg FilmU;Filmuniversität Babelsberg Konrad Wolf;Künstlerische Hochschulen;öffentlich-rechtlich;Brandenburg;947;1954;Ja;Nein;Marlene-Dietrich-Allee 11;14482;Potsdam;https://www.filmuniversitaet.de/ +Potsdam CHP;Hochschule Clara Hoffbauer (HCHP) - University of Applied Sciences;Fachhochschulen / HAW;privat, staatlich anerkannt;Brandenburg;119;2016;Nein;Nein;Hermannswerder 7;14473;Potsdam;https://hchp.de/ +Potsdam FH;Fachhochschule Potsdam;Fachhochschulen / HAW;öffentlich-rechtlich;Brandenburg;3730;1991;Nein;Nein;Kiepenheuerallee 5;14469;Potsdam;https://www.fh-potsdam.de +Potsdam FHSport;Fachhochschule für Sport und Management Potsdam;Fachhochschulen / HAW;privat, staatlich anerkannt;Brandenburg;553;2009;Nein;Nein;Olympischer Weg 7;14471;Potsdam;www.fhsmp.de +Potsdam GISMA;Gisma University of Applied Sciences;Fachhochschulen / HAW;privat, staatlich anerkannt;Brandenburg;834;2020;Nein;Nein;Konrad-Zuse-Ring 11;14469;Potsdam;https://www.gisma.com +Potsdam GU;GU Deutsche Hochschule für Angewandte Wissenschaften - German University of Applied Sciences;Fachhochschulen / HAW;privat, staatlich anerkannt;Brandenburg;50;2022;Nein;Nein;Jägerallee 26;14469;Potsdam;https://gu-hochschule.de/ +Potsdam HSD;HSD Hochschule Döpfer;Fachhochschulen / HAW;privat, staatlich anerkannt;Brandenburg;1405;2013;Nein;Nein;Tuchmacherstraße 48b;14482;Potsdam;https://www.hs-doepfer.de/ +Potsdam U;Universität Potsdam;Universitäten;öffentlich-rechtlich;Brandenburg;20401;1991;Ja;Ja;Am Neuen Palais 10;14469;Potsdam;http://www.uni-potsdam.de +Potsdam UE;University of Europe for Applied Sciences;Fachhochschulen / HAW;privat, staatlich anerkannt;Brandenburg;4787;2000;Nein;Nein;Konrad-Zuse-Ring 11;14469;Potsdam;https://www.ue-germany.com/ +Potsdam XU;XU Exponential University of Applied Sciences;Fachhochschulen / HAW;privat, staatlich anerkannt;Brandenburg;176;2018;Nein;Nein;August-Bebel-Straße 26-53;14482;Potsdam;https://xu-university.com +Ravensburg-Weingarten H;Hochschule Ravensburg-Weingarten;Fachhochschulen / HAW;öffentlich-rechtlich;Baden-Württemberg;3448;1964;Nein;Nein;Doggenriedstraße 70;88250;Weingarten;http://www.rwu.de +Regensburg HfKiM;Hochschule für Katholische Kirchenmusik und Musikpädagogik;Künstlerische Hochschulen;kirchlich, staatlich anerkannt;Bayern;121;2001;Nein;Nein;Andreasstraße 9;93059;Regensburg;http://www.hfkm-regensburg.de +Regensburg OTH;Ostbayerische Technische Hochschule Regensburg;Fachhochschulen / HAW;öffentlich-rechtlich;Bayern;10704;1971;Nein;Nein;Seybothstraße 2;93053;Regensburg;http://www.oth-regensburg.de +Regensburg U;Universität Regensburg;Universitäten;öffentlich-rechtlich;Bayern;20353;1962;Ja;Ja;Universitätsstraße 31;93053;Regensburg;https://www.uni-regensburg.de +Reutlingen HTWID;Hochschule Reutlingen, Hochschule für Technik- Wirtschaft-Informatik-Design;Fachhochschulen / HAW;öffentlich-rechtlich;Baden-Württemberg;4933;1855;Nein;Nein;Alteburgstraße 150;72762;Reutlingen;http://www.reutlingen-university.de/ +Reutlingen ThH;Theologische Hochschule Reutlingen - staatlich anerkannte Fachhochschule der Evangelisch-methodistischen Kirche;Fachhochschulen / HAW;kirchlich, staatlich anerkannt;Baden-Württemberg;105;1877;Nein;Nein;Friedrich-Ebert-Straße 31;72762;Reutlingen;http://www.th-reutlingen.de +Rheinland-Pfalz HFinanz (Verw);Hochschule für Finanzen Rheinland-Pfalz;Verwaltungshochschule;öffentlich-rechtlich;Rheinland-Pfalz;666;;Nein;Nein;Luitpoldstraße 33;67480;Edenkoben;https://landesfinanzschule-edenkoben.fin-rlp.de/hochschule +Rheinland-Pfalz HPol (Verw);Hochschule der Polizei Rheinland-Pfalz;Verwaltungshochschule;öffentlich-rechtlich;Rheinland-Pfalz;1511;;Nein;Nein;Hunsrück Drive;55491;Büchenbeuren;https://www.polizei.rlp.de/de/die-polizei/dienststellen/hochschule-der-polizei-rheinland-pfalz/ +Rheinland-Pfalz HVerw (Verw);Hochschule für öffentliche Verwaltung Rheinland-Pfalz;Verwaltungshochschule;öffentlich-rechtlich;Rheinland-Pfalz;912;1981;Nein;Nein;St.-Veit-Straße 26-28;56727;Mayen;https://hoev-rlp.de/de/ueber-die-hochschule/kontakt/ +RheinMain H;Hochschule RheinMain;Fachhochschulen / HAW;öffentlich-rechtlich;Hessen;12945;1971;Ja;Nein;Kurt-Schumacher-Ring 18;65197;Wiesbaden;https://www.hs-rm.de/de/ +Rhein-Waal H;Hochschule Rhein-Waal - University of Applied Sciences;Fachhochschulen / HAW;öffentlich-rechtlich;Nordrhein-Westfalen;6465;2009;Nein;Nein;Marie-Curie-Str. 1;47533;Kleve;http://www.hochschule-rhein-waal.de/ +Riedlingen SRH;SRH Fernhochschule - The Mobile University;Fachhochschulen / HAW;privat, staatlich anerkannt;Baden-Württemberg;8746;1996;Nein;Nein;Kirchstraße 26;88499;Riedlingen;https://www.mobile-university.de +Rosenheim TH;Technische Hochschule Rosenheim;Fachhochschulen / HAW;öffentlich-rechtlich;Bayern;6648;1971;Nein;Nein;Hochschulstraße 1;83024;Rosenheim;http://www.th-rosenheim.de/ +Rostock HMT;Hochschule für Musik und Theater Rostock;Künstlerische Hochschulen;öffentlich-rechtlich;Mecklenburg-Vorpommern;567;1994;Ja;Ja;Beim St.-Katharinenstift 8;18055;Rostock;http://www.hmt-rostock.de +Rostock U;Universität Rostock;Universitäten;öffentlich-rechtlich;Mecklenburg-Vorpommern;12678;1419;Ja;Ja;Universitätsplatz 1;18055;Rostock;http://www.uni-rostock.de +Rottenburg H;Hochschule für Forstwirtschaft Rottenburg;Fachhochschulen / HAW;öffentlich-rechtlich;Baden-Württemberg;941;1954;Nein;Nein;Schadenweilerhof;72108;Rottenburg;http://www.hs-rottenburg.net +Rottenburg HfKiM;Hochschule für Kirchenmusik der Diözese Rottenburg-Stuttgart;Künstlerische Hochschulen;kirchlich, staatlich anerkannt;Baden-Württemberg;19;1949;Nein;Nein;St.-Meinrad-Weg 6;72108;Rottenburg;www.kirchenmusik-hochschule.org +Ruhr West H;Hochschule Ruhr West- University of Applied Sciences;Fachhochschulen / HAW;öffentlich-rechtlich;Nordrhein-Westfalen;5999;2009;Nein;Nein;Duisburger Straße 100;45479;Mülheim;http://www.hochschule-ruhr-west.de +Saarbrücken DHfPG;Deutsche Hochschule für Prävention und Gesundheitsmanagement GmbH;Fachhochschulen / HAW;privat, staatlich anerkannt;Saarland;7133;2001;Nein;Nein;Hermann-Neuberger-Straße 3;66123;Saarbrücken;http://www.dhfpg.de +Saarbrücken HfM;Hochschule für Musik Saar;Künstlerische Hochschulen;öffentlich-rechtlich;Saarland;501;1947;Ja;Nein;Bismarckstraße 1;66111;Saarbrücken;www.hfmsaar.de +Saarbrücken HTW;Hochschule für Technik und Wirtschaft des Saarlandes;Fachhochschulen / HAW;öffentlich-rechtlich;Saarland;5942;1971;Nein;Nein;Goebenstraße 40;66117;Saarbrücken;http://www.htwsaar.de +Saarbrücken U;Universität des Saarlandes;Universitäten;öffentlich-rechtlich;Saarland;15949;1948;Ja;Ja;Campus;66123;Saarbrücken;https://www.uni-saarland.de +Saar HBK;Hochschule der Bildenden Künste Saar;Künstlerische Hochschulen;öffentlich-rechtlich;Saarland;434;1989;Ja;Nein;Keplerstraße 3-5;66117;Saarbrücken;https://www.hbksaar.de +Saarland FHVerw (Verw);Fachhochschule der Verwaltung des Saarlandes;Verwaltungshochschule;öffentlich-rechtlich;Saarland;802;1980;Nein;Nein;Am Campus 7;66287;Quierschied;https://www.saarland.de/fhsv/DE/home/home_node.html +Sachsen-Anhalt FHPol (Verw);Fachhochschule Polizei Sachsen-Anhalt;Verwaltungshochschule;öffentlich-rechtlich;Sachsen-Anhalt;705;1997;Nein;Nein;Schmidtmannstraße 86;06449;Aschersleben;https://fh-polizei.sachsen-anhalt.de/fachhochschule +Sachsen HPol (Verw);Hochschule der Sächsischen Polizei (FH);Verwaltungshochschule;öffentlich-rechtlich;Sachsen;640;1994;Nein;Nein;Friedensstraße 120;02929;Rothenburg;https://www.polizei.sachsen.de/de/polfh.htm +Sachsen HVerw (VerwH);Hochschule für öffentliche Verwaltung und Rechtspflege (FH), Fortbildungszentrum des Freistaates Sachsen (HSF);Verwaltungshochschule;öffentlich-rechtlich;Sachsen;1035;1992;Nein;Nein;Herbert-Böhme-Straße 11;01662;Meißen;https://www.hsf.sachsen.de/ +Schleswig-Holstein DHSH;Duale Hochschule Schleswig-Holstein - staatlich anerkannte Hochschule für angewandte Wissenschaften in Trägerschaft der Wirtschaftsakademie Schleswig-Holstein;Fachhochschulen / HAW;privat, staatlich anerkannt;Schleswig-Holstein;512;2018;Nein;Nein;Hans-Detlev-Prien-Straße 10;24106;Kiel;https://www.dhsh.de +Schleswig-Holstein FHVD (Verw);Fachhochschule für Verwaltung und Dienstleistung in Schleswig-Holstein;Verwaltungshochschule;öffentlich-rechtlich;Schleswig-Holstein;1716;1975;Nein;Nein;Rehmkamp 10;24161;Altenholz;https://www.fhvd-sh.de/hochschule/fhvd/ +Schmalkalden H;Hochschule Schmalkalden;Fachhochschulen / HAW;öffentlich-rechtlich;Thüringen;2564;1991;Nein;Nein;Blechhammer 9;98574;Schmalkalden;http://www.hs-schmalkalden.de +Schwäbisch Gmünd HGest;Hochschule für Gestaltung Schwäbisch Gmünd;Fachhochschulen / HAW;öffentlich-rechtlich;Baden-Württemberg;678;1909;Nein;Nein;Rektor-Klaus-Str. 100;73525;Schwäbisch Gmünd;http://www.hfg-gmuend.de +Schwäbisch Gmünd PH;Pädagogische Hochschule Schwäbisch Gmünd;Universitäten;öffentlich-rechtlich;Baden-Württemberg;2780;1962;Ja;Ja;Oberbettringer Str. 200;73525;Schwäbisch Gmünd;https://www.ph-gmuend.de +Siegen U;Universität Siegen;Universitäten;öffentlich-rechtlich;Nordrhein-Westfalen;15186;1972;Ja;Ja;Adolf-Reichwein-Straße 2;57076;Siegen;http://www.uni-siegen.de +Speyer DUV;Deutsche Universität für Verwaltungswissenschaften Speyer;Universitäten;öffentlich-rechtlich;Rheinland-Pfalz;278;1947;Ja;Ja;Freiherr-vom-Stein-Straße 2;67346;Speyer;http://www.uni-speyer.de +Stralsund H;Hochschule Stralsund;Fachhochschulen / HAW;öffentlich-rechtlich;Mecklenburg-Vorpommern;2268;1991;Nein;Nein;Zur Schwedenschanze 15;18435;Stralsund;www.hochschule-stralsund.de +Stuttgart AKAD;AKAD Hochschule Stuttgart - staatlich anerkannt;Fachhochschulen / HAW;privat, staatlich anerkannt;Baden-Württemberg;6370;1959;Nein;Nein;Heilbronner Str. 86;70191;Stuttgart;https://www.akad.de/?wkz=7007AA +Stuttgart AkdBK;Staatliche Akademie der Bildenden Künste Stuttgart;Künstlerische Hochschulen;öffentlich-rechtlich;Baden-Württemberg;801;1761;Ja;Ja;Am Weißenhof 1;70191;Stuttgart;http://www.abk-stuttgart.de +Stuttgart DH;Duale Hochschule Baden-Württemberg;Hochschulen eigenen Typs;öffentlich-rechtlich;Baden-Württemberg;32647;2009;Nein;Nein;Friedrichstraße 14.;70174;Stuttgart;http://www.dhbw.de +Stuttgart H;Hochschule für Technik Stuttgart;Fachhochschulen / HAW;öffentlich-rechtlich;Baden-Württemberg;3945;1832;Nein;Nein;Schellingstraße 24;70174;Stuttgart;http://www.hft-stuttgart.de +Stuttgart HdM;Hochschule der Medien Stuttgart;Fachhochschulen / HAW;öffentlich-rechtlich;Baden-Württemberg;5513;1903;Nein;Nein;Nobelstraße 10;70569;Stuttgart;http://www.hdm-stuttgart.de +Stuttgart HfK+G;Hochschule für Kommunikation und Gestaltung;Fachhochschulen / HAW;privat, staatlich anerkannt;Baden-Württemberg;59;2013;Nein;Nein;Kölner Straße 38;70376;Stuttgart;www.hfk-bw.de +Stuttgart HfM;Staatliche Hochschule für Musik und Darstellende Kunst Stuttgart;Künstlerische Hochschulen;öffentlich-rechtlich;Baden-Württemberg;757;1857;Ja;Nein;Urbanstraße 25;70182;Stuttgart;http://www.hmdk-stuttgart.de +Stuttgart MAW;Hochschule Macromedia - staatlich anerkannte Hochschule für angewandte Wissenschaften der Macromedia GmbH mit Sitz in Stuttgart;Fachhochschulen / HAW;privat, staatlich anerkannt;Baden-Württemberg;5190;2006;Nein;Nein;Naststraße 11/Im Römerkastell;70376;Stuttgart;http://www.macromedia-fachhochschule.de/ +Stuttgart MediaAk;media Akademie - Hochschule Stuttgart;Fachhochschulen / HAW;privat, staatlich anerkannt;Baden-Württemberg;13;2015;Nein;Nein;Tübinger Str. 12-16;70178;Stuttgart;www.media-hs.de +Stuttgart MerzAk;Merz Akademie Hochschule für Gestaltung, Kunst und Medien, Stuttgart - Staatlich anerkannt;Fachhochschulen / HAW;privat, staatlich anerkannt;Baden-Württemberg;208;1985;Nein;Nein;Teckstraße 58;70190;Stuttgart;http://www.merz-akademie.de +Stuttgart U;Universität Stuttgart;Universitäten;öffentlich-rechtlich;Baden-Württemberg;21141;1829;Ja;Ja;Keplerstraße 7;70174;Stuttgart;http://www.uni-stuttgart.de +Stuttgart U Waldorf;Freie Hochschule Stuttgart - Seminar für Waldorfpädagogik. Staatlich anerkannte wissenschaftliche Hochschule.;Universitäten;privat, staatlich anerkannt;Baden-Württemberg;304;1919;Nein;Nein;Haußmannstraße 44a;70188;Stuttgart;http://www.freie-hochschule-stuttgart.de +Stuttgart VWA;VWA-Hochschule für berufsbegleitendes Studium;Fachhochschulen / HAW;privat, staatlich anerkannt;Baden-Württemberg;33;2013;Nein;Nein;Wolframstraße 32;70191;Stuttgart;https://www.vwa-hochschule.de +Südwestfalen FH;Fachhochschule Südwestfalen;Fachhochschulen / HAW;öffentlich-rechtlich;Nordrhein-Westfalen;10995;2002;Nein;Nein;Baarstraße 6;58636;Iserlohn;https://www.fh-swf.de +Thüringen VerwH (Verw);Thüringer Fachhochschule für öffentliche Verwaltung;Verwaltungshochschule;öffentlich-rechtlich;Thüringen;641;1994;Nein;Nein;Bahnhofstraße 12;99867;Gotha;https://bildungszentrum.thueringen.de/thueringer-fachhochschule-fuer-oeffentliche-verwaltung +Trier H;Hochschule Trier - Trier University of Applied Sciences;Fachhochschulen / HAW;öffentlich-rechtlich;Rheinland-Pfalz;6688;1971;Nein;Nein;Schneidershof;54293;Trier;http://www.hochschule-trier.de/ +Trier ThFak;Theologische Fakultät Trier;Universitäten;kirchlich, staatlich anerkannt;Rheinland-Pfalz;150;1950;Ja;Ja;Universitätsring 19;54296;Trier;https://theologie-trier.de/ +Trier U;Universität Trier;Universitäten;öffentlich-rechtlich;Rheinland-Pfalz;10518;1970;Ja;Ja;Universitätsring 15;54296;Trier;http://www.uni-trier.de +Trossingen HfM;Staatliche Hochschule für Musik Trossingen;Künstlerische Hochschulen;öffentlich-rechtlich;Baden-Württemberg;419;1944;Ja;Nein;Schultheiß-Koch-Platz 3;78647;Trossingen;https://www.hfm-trossingen.de +Tübingen HfKiM;Hochschule für Kirchenmusik der Evangelischen Landeskirche in Württemberg;Künstlerische Hochschulen;kirchlich, staatlich anerkannt;Baden-Württemberg;19;1945;Nein;Nein;Gartenstraße 12;72074;Tübingen;http://www.kirchenmusikhochschule.de +Tübingen U;Eberhard Karls Universität Tübingen;Universitäten;öffentlich-rechtlich;Baden-Württemberg;28239;1477;Ja;Ja;Geschwister-Scholl-Platz;72074;Tübingen;http://www.uni-tuebingen.de +Ulm TH;Technische Hochschule Ulm;Fachhochschulen / HAW;öffentlich-rechtlich;Baden-Württemberg;2966;1960;Nein;Nein;Prittwitzstraße 10;89075;Ulm;http://www.thu.de +Ulm U;Universität Ulm;Universitäten;öffentlich-rechtlich;Baden-Württemberg;9978;1967;Ja;Ja;Albert-Einstein-Allee 11;89081;Ulm;http://www.uni-ulm.de +Vallendar VP-Uni;Vinzenz Pallotti University - kirchlich und staatlich anerkannte wissenschaftliche Hochschule in freier Trägerschaft;Universitäten;kirchlich, staatlich anerkannt;Rheinland-Pfalz;254;1896;Ja;Ja;Pallottistraße 3;56179;Vallendar;https://vp-uni.de/ +Vallendar WHU;WHU - Otto Beisheim School of Management;Universitäten;privat, staatlich anerkannt;Rheinland-Pfalz;1961;1984;Ja;Ja;Burgplatz 2;56179;Vallendar;http://www.whu.edu +Vechta/Diepholz PHWT;Private Hochschule für Wirtschaft und Technik Vechta/Diepholz;Fachhochschulen / HAW;privat, staatlich anerkannt;Niedersachsen;517;1998;Nein;Nein;Rombergstraße 40;49377;Vechta;https://www.phwt.de +Vechta U;Universität Vechta;Universitäten;öffentlich-rechtlich;Niedersachsen;3714;1995;Ja;Ja;Driverstraße 22;49377;Vechta;http://www.uni-vechta.de +Wedel FH;Fachhochschule Wedel;Fachhochschulen / HAW;privat, staatlich anerkannt;Schleswig-Holstein;1128;1948;Nein;Nein;Feldstraße 143;22880;Wedel;http://www.fh-wedel.de +Weihenstephan-Triesdorf H;Hochschule für angewandte Wissenschaften Weihenstephan-Triesdorf;Fachhochschulen / HAW;öffentlich-rechtlich;Bayern;5692;1971;Nein;Nein;Am Hofgarten 4;85354;Freising;https://www.hswt.de/ +Weimar HfM;Hochschule für Musik Franz Liszt Weimar;Künstlerische Hochschulen;öffentlich-rechtlich;Thüringen;752;1872;Ja;Nein;Platz der Demokratie 2/3;99423;Weimar;http://www.hfm-weimar.de +Weimar U;Bauhaus-Universität Weimar;Universitäten;öffentlich-rechtlich;Thüringen;3955;1860;Ja;Ja;Geschwister-Scholl-Straße 8;99423;Weimar;http://www.uni-weimar.de/studium +Weingarten PH;Pädagogische Hochschule Weingarten;Universitäten;öffentlich-rechtlich;Baden-Württemberg;3307;1949;Ja;Ja;Kirchplatz 2;88250;Weingarten;https://www.ph-weingarten.de/die-ph-weingarten/ +Weserbergland H;Hochschule Weserbergland;Fachhochschulen / HAW;privat, staatlich anerkannt;Niedersachsen;443;2010;Nein;Nein;Am Stockhof 2;31785;Hameln;https://www.hsw-hameln.de +Westfälische H;Westfälische Hochschule Gelsenkirchen, Bocholt, Recklinghausen;Fachhochschulen / HAW;öffentlich-rechtlich;Nordrhein-Westfalen;7620;1992;Nein;Nein;Neidenburger Straße 43;45897;Gelsenkirchen;http://www.w-hs.de +Westküste FH;Fachhochschule Westküste, Hochschule für Wirtschaft und Technik;Fachhochschulen / HAW;öffentlich-rechtlich;Schleswig-Holstein;1572;1994;Nein;Nein;Fritz-Thiedemann-Ring 20;25746;Heide;http://www.fh-westkueste.de +Wiesbaden CFH;Charlotte Fresenius Hochschule;Universitäten;privat, staatlich anerkannt;Hessen;575;2021;Nein;Nein;Moritzstr. 17a;65185;Wiesbaden;https://www.charlotte-fresenius-uni.de/?crmid=aBbWvOcHiAaAaAaA +Wiesbaden EBS;EBS Universität für Wirtschaft und Recht;Universitäten;privat, staatlich anerkannt;Hessen;1719;1971;Ja;Ja;Gustav-Stresemann-Ring 3;65189;Wiesbaden;http://www.ebs.edu +Wildau TH;Technische Hochschule Wildau;Fachhochschulen / HAW;öffentlich-rechtlich;Brandenburg;3357;1991;Nein;Nein;Hochschulring 1;15745;Wildau;http://www.th-wildau.de/ +Wilhelmshaven/Oldenburg/Elsfleth H;Jade Hochschule - Wilhelmshaven/Oldenburg/Elsfleth;Fachhochschulen / HAW;öffentlich-rechtlich;Niedersachsen;6399;2009;Nein;Nein;Friedrich-Paffrath-Straße 101;26389;Wilhelmshaven;http://www.jade-hs.de +Wismar H;Hochschule Wismar - University of Applied Sciences: Technology, Business and Design;Fachhochschulen / HAW;öffentlich-rechtlich;Mecklenburg-Vorpommern;8048;1908;Nein;Nein;Philipp-Müller-Straße 14;23966;Wismar;https://www.hs-wismar.de +Witten/ Herdecke U;Private Universität Witten/Herdecke gGmbH;Universitäten;privat, staatlich anerkannt;Nordrhein-Westfalen;3011;1982;Ja;Ja;Alfred-Herrhausen-Str. 50;58448;Witten;https://www.uni-wh.de/ +Worms H;Hochschule Worms, University of Applied Sciences;Fachhochschulen / HAW;öffentlich-rechtlich;Rheinland-Pfalz;3391;1996;Nein;Nein;Erenburgerstr. 19;67549;Worms;http://www.hs-worms.de +Wuppertal KiH;Kirchliche Hochschule Wuppertal;Universitäten;kirchlich, staatlich anerkannt;Nordrhein-Westfalen;177;1935;Ja;Ja;Missionsstraße 9 a/b;42285;Wuppertal;https://www.kiho-wuppertal.de/ +Wuppertal U;Bergische Universität Wuppertal;Universitäten;öffentlich-rechtlich;Nordrhein-Westfalen;21289;1972;Ja;Ja;Gaußstraße 20;42119;Wuppertal;https://www.uni-wuppertal.de/de/ +Würzburg HfM;Hochschule für Musik Würzburg;Künstlerische Hochschulen;öffentlich-rechtlich;Bayern;530;1804;Ja;Nein;Hofstallstraße 6-8;97070;Würzburg;http://www.hfm-wuerzburg.de +Würzburg-Schweinfurt TH;Technische Hochschule Würzburg-Schweinfurt;Fachhochschulen / HAW;öffentlich-rechtlich;Bayern;9250;1971;Nein;Nein;Münzstraße 12;97070;Würzburg;http://www.thws.de +Würzburg U;Julius-Maximilians-Universität Würzburg;Universitäten;öffentlich-rechtlich;Bayern;26126;1402;Ja;Ja;Sanderring 2;97070;Würzburg;http://www.uni-wuerzburg.de +Zittau/ Görlitz H;Hochschule Zittau/Görlitz;Fachhochschulen / HAW;öffentlich-rechtlich;Sachsen;2532;1992;Nein;Nein;Theodor-Körner-Allee 16;02763;Zittau;http://www.hszg.de/ +Zwickau H;Westsächsische Hochschule Zwickau;Fachhochschulen / HAW;öffentlich-rechtlich;Sachsen;2931;1897;Nein;Nein;Kornmarkt 1;08056;Zwickau;http://www.fh-zwickau.de diff --git a/2024_Datenbanksysteme/data/source/nettokaltmieten.csv b/2024_Datenbanksysteme/data/source/nettokaltmieten.csv new file mode 100644 index 0000000..fb4d3d3 --- /dev/null +++ b/2024_Datenbanksysteme/data/source/nettokaltmieten.csv @@ -0,0 +1,17 @@ +"Kategorie";"Einzug 2019 oder später";"Insgesamt" +"Hamburg";10.9;9.3 +"Bayern";9.9;8.7 +"Berlin";10.2;8 +"Baden-Württemberg";9.4;8.2 +"Hessen";9.1;8 +"Bremen";8.1;7.2 +"Schleswig-Holstein";8.3;7.5 +"Nordrhein-Westfalen";7.8;7 +"Rheinland-Pfalz";7.5;6.7 +"Niedersachsen";7.2;6.5 +"Saarland";6.2;5.7 +"Mecklenburg-Vorpommern";7;6.2 +"Brandenburg";7.5;6.5 +"Sachsen";6.7;5.9 +"Thüringen";6.6;5.9 +"Sachsen-Anhalt";6.1;5.6 \ No newline at end of file diff --git a/2024_Datenbanksysteme/index.html b/2024_Datenbanksysteme/index.html new file mode 100644 index 0000000..23fb63c --- /dev/null +++ b/2024_Datenbanksysteme/index.html @@ -0,0 +1,223 @@ + + + + + + Hochschulen in Deutschland + + + +

Hochschulen in Deutschland

+ +

Übersicht

+ +
+ + +
+ + {{ table_grouped | safe }} + +

Gesamter Datensatz

+ + +
+ {% for button in shortcut_options %} + + {% endfor %} +
+ +
+ + + + + + + + + + + + + + +
+
+ {% for checkbox in checkbox_options %} + {{ checkbox.label }}
+ {% endfor %} +
+ + + +
+ +
+ {{ map |safe }} +
+ + {{ table | safe }} + + + + \ No newline at end of file diff --git a/2024_Datenbanksysteme/requirements.txt b/2024_Datenbanksysteme/requirements.txt new file mode 100644 index 0000000..e05a24a --- /dev/null +++ b/2024_Datenbanksysteme/requirements.txt @@ -0,0 +1,28 @@ +blinker==1.8.2 +branca==0.7.2 +certifi==2024.6.2 +charset-normalizer==3.3.2 +click==8.1.7 +Flask==3.0.3 +Flask-SQLAlchemy==3.1.1 +folium==0.17.0 +geographiclib==2.0 +geopy==2.4.1 +idna==3.7 +itsdangerous==2.2.0 +Jinja2==3.1.4 +MarkupSafe==2.1.5 +numpy==2.0.0 +pandas==2.2.2 +psycopg2-binary==2.9.9 +python-dateutil==2.9.0.post0 +pytz==2024.1 +requests==2.32.3 +six==1.16.0 +SQLAlchemy==2.0.31 +tabulate==0.9.0 +typing_extensions==4.12.2 +tzdata==2024.1 +urllib3==2.2.2 +Werkzeug==3.0.3 +xyzservices==2024.6.0 diff --git a/2025_Advanced_Earth_Observation/.gitignore b/2025_Advanced_Earth_Observation/.gitignore new file mode 100644 index 0000000..ed8ebf5 --- /dev/null +++ b/2025_Advanced_Earth_Observation/.gitignore @@ -0,0 +1 @@ +__pycache__ \ No newline at end of file diff --git a/2025_Advanced_Earth_Observation/README.md b/2025_Advanced_Earth_Observation/README.md new file mode 100644 index 0000000..8801a2a --- /dev/null +++ b/2025_Advanced_Earth_Observation/README.md @@ -0,0 +1,44 @@ + +## Setup + +### 1. Create and activate a virtual environment + +**Linux/macOS:** +```bash +python3 -m venv venv +source venv/bin/activate +``` + +**Windows:** +```bash +python -m venv venv +venv\Scripts\activate +``` + +### 2. Install requirements + +```bash +pip3 install -r requirements.txt +``` + +### 3. Run the main script + +```bash +python3 src/main.py +``` + +### 4. Update Slides + +edit `docs/slides.md` + +### 5. Compile html + +Requirements: marp + +``` +marp docs/slides.md +``` + +### 5. View slides + +Open `docs/slides.html` in your browser diff --git a/2025_Advanced_Earth_Observation/docs/slides.html b/2025_Advanced_Earth_Observation/docs/slides.html new file mode 100644 index 0000000..e29a608 --- /dev/null +++ b/2025_Advanced_Earth_Observation/docs/slides.html @@ -0,0 +1,155 @@ +Artificial Surface Materials at Golm
+

Artificial Surface Materials at Golm

+
07.07.2025 / University of Potsdam / Joaquin Gottlebe, Florian Ringel
+
+
+
Research Question
+

Which artificial surface material types expanded the most and how much (in ) between 2018-2024?

+
07.07.2025 / University of Potsdam / Joaquin Gottlebe, Florian Ringel
+
+
+
Definition
+

Artifical Surface Materials: Materials, that are located on the surface and are either Man-made or deliberately placed there by humans.

+
07.07.2025 / University of Potsdam / Joaquin Gottlebe, Florian Ringel
+
+
+
Study area Campus Golm
+

+
07.07.2025 / University of Potsdam / Joaquin Gottlebe, Florian Ringel
+
+
+
Workflow
+
    +
  1. Preprocessing of data
  2. +
  3. Create training data
  4. +
  5. Classification
  6. +
  7. Change detection
  8. +
  9. Change analysis
  10. +
+
07.07.2025 / University of Potsdam / Joaquin Gottlebe, Florian Ringel
+
+
+
Classes
+

+
07.07.2025 / University of Potsdam / Joaquin Gottlebe, Florian Ringel
+
+
+
Datasets
+


+
+

+
07.07.2025 / University of Potsdam / Joaquin Gottlebe, Florian Ringel
+
+
+
Classification Method
+
    +
  1. Read raster bands
  2. +
  3. Apply PCA to reduce spectral dimensionality
  4. +
  5. Rasterize training polygons into labeled pixels
  6. +
  7. Extract labeled pixels as training samples
  8. +
  9. Train Random Forest on labeled data
  10. +
  11. Classify all pixels using trained model
  12. +
  13. Validate with validation data
  14. +
+
07.07.2025 / University of Potsdam / Joaquin Gottlebe, Florian Ringel
+
+
+
Classification Implementation
+
    +
  • rasterio
  • +
  • geopandas
  • +
  • sklearn.decomposition.PCA
  • +
  • sklearn.ensemble.RandomForestClassifier
  • +
+
07.07.2025 / University of Potsdam / Joaquin Gottlebe, Florian Ringel
+
+
+
Classification Training Data
+


+
+

+
07.07.2025 / University of Potsdam / Joaquin Gottlebe, Florian Ringel
+
+
+
Classification Training Data
+


+
+

+
07.07.2025 / University of Potsdam / Joaquin Gottlebe, Florian Ringel
+
+
+
Classification Results
+


+
+

+
07.07.2025 / University of Potsdam / Joaquin Gottlebe, Florian Ringel
+
+
+
Classification Confusion Matrix
+


+
+

+
07.07.2025 / University of Potsdam / Joaquin Gottlebe, Florian Ringel
+
+
+
Classification Accuracy
+


+
+

+
07.07.2025 / University of Potsdam / Joaquin Gottlebe, Florian Ringel
+
+
+
Change Detection Method
+

07.07.2025 / University of Potsdam / Joaquin Gottlebe, Florian Ringel
+
+
+
Change Detection Results
+

11
+12
+13
+...
+88

+
07.07.2025 / University of Potsdam / Joaquin Gottlebe, Florian Ringel
+
+
+
Change Analysis 2018-2024
+

+
07.07.2025 / University of Potsdam / Joaquin Gottlebe, Florian Ringel
+
+
+
Challenges
+
    +
  • Datasets had different amount of Bands
  • +
  • Deciding on the right classes
  • +
  • Classification with Enmap Box, unsatisfactory
  • +
+
07.07.2025 / University of Potsdam / Joaquin Gottlebe, Florian Ringel
+
+
+

Thank you, for your attention!

+
07.07.2025 / University of Potsdam / Joaquin Gottlebe, Florian Ringel
+
+
+
Sources
+ +

Balsamo et al. “Satellite and In Situ Observations for Advancing Global Earth Surface Modelling: A Review.” Remote Sensing 10, no. 12 (December 2018): 2038. https://doi.org/10.3390/rs10122038.

+

Guanter et al. “The EnMAP Spaceborne Imaging Spectroscopy Mission for Earth Observation.” Remote Sensing 7, no. 7 (July 2015): 8830–57. https://doi.org/10.3390/rs70708830.

+

Ilehag et al. “KLUM: An Urban VNIR and SWIR Spectral Library Consisting of Building Materials.” Remote Sensing 11, no. 18 (January 2019): 2149. https://doi.org/10.3390/rs11182149.

+

Lindeni et al. “Imaging Spectroscopy of Urban Environments.” Surveys in Geophysics 40, no. 3 (May 1, 2019): 471–88. https://doi.org/10.1007/s10712-018-9486-y.

+

Okujeni et al. “Support Vector Regression and Synthetically Mixed Training Data for Quantifying Urban Land Cover.” Remote Sensing of Environment 137 (October 1, 2013): 184–97. https://doi.org/10.1016/j.rse.2013.06.007.

+

Zhao et al. “ASI: An Artificial Surface Index for Landsat 8 Imagery.” International Journal of Applied Earth Observation and Geoinformation 107 (March 1, 2022): 102703. https://doi.org/10.1016/j.jag.2022.102703.

+
07.07.2025 / University of Potsdam / Joaquin Gottlebe, Florian Ringel
+
+
\ No newline at end of file diff --git a/2025_Advanced_Earth_Observation/docs/slides.md b/2025_Advanced_Earth_Observation/docs/slides.md new file mode 100644 index 0000000..6ff58d8 --- /dev/null +++ b/2025_Advanced_Earth_Observation/docs/slides.md @@ -0,0 +1,176 @@ +--- +marp: true +theme: uncover +class: invert +paginate: true +_paginate: false +footer: '07.07.2025 / University of Potsdam / Joaquin Gottlebe, Florian Ringel' +--- + + +# Artificial Surface Materials at Golm + +--- + +##### Research Question + +Which artificial surface material types expanded the most and how much (in $m^2$) between 2018-2024? + +--- + +##### Definition + +**Artifical Surface Materials**: Materials, that are located on the surface and are either Man-made or deliberately placed there by humans. + +--- + +##### Study area Campus Golm + +![w:550](../data/golm.png) + +--- + +##### Workflow + +1. Preprocessing of data +2. Create training data +2. Classification +3. Change detection +4. Change analysis + +--- + +##### Classes + +![w:600](../results/metadata.png) + +--- + +##### Datasets + +![100%](../results/empty.png) +![bg 100%](../results/meta_2018.png) +![bg 100%](../results/meta_2024.png) + +--- + +##### Classification Method + +1. Read raster **bands** +2. Apply **PCA** to reduce spectral dimensionality +3. Rasterize training polygons into **labeled pixels** +4. Extract labeled pixels as training samples +5. Train **Random Forest** on labeled data +6. Classify all pixels using trained model +7. Validate with validation data + +--- + +##### Classification Implementation + +- rasterio +- geopandas +- sklearn.decomposition.PCA +- sklearn.ensemble.RandomForestClassifier + +--- +##### Classification Training Data + +![100%](../results/empty.png) +![bg 100%](../results/training_2018_meta.png) +![bg 100%](../results/training2018.png) + +--- + +##### Classification Training Data + +![100%](../results/empty.png) +![bg 100%](../results/training_2024_meta.png) +![bg 100%](../results/training2024.png) + +--- + +##### Classification Results + +![100%](../results/empty.png) +![bg 100%](../results/classified_2018.png) +![bg 100%](../results/classified_2024.png) + +--- + +##### Classification Confusion Matrix + + +![100%](../results/empty.png) +![bg 100%](../results/confusion_matrix_2018.png) +![bg 100%](../results/confusion_matrix_2024.png) + +--- + +##### Classification Accuracy + +![100%](../results/empty.png) +![bg 100%](../results/accuracy_2018.png) +![bg 100%](../results/accuracy_2024.png) + +--- + +##### Change Detection Method + +$$ +\text{change\_value} = \text{old\_value} \times 10 + \text{new\_value} +$$ + +--- + +##### Change Detection Results + +11 +12 +13 +... +88 + +![bg right:50% 100%](../results/change.png) + +--- + +##### Change Analysis 2018-2024 + +![w:750](../results/difference.png) + +--- + +##### Challenges + +- Datasets had different amount of Bands +- Deciding on the right classes +- Classification with Enmap Box, unsatisfactory + +--- + +Thank you, for your attention! + +--- + +##### Sources + + + + +Balsamo et al. “Satellite and In Situ Observations for Advancing Global Earth Surface Modelling: A Review.” Remote Sensing 10, no. 12 (December 2018): 2038. https://doi.org/10.3390/rs10122038. + +Guanter et al. “The EnMAP Spaceborne Imaging Spectroscopy Mission for Earth Observation.” Remote Sensing 7, no. 7 (July 2015): 8830–57. https://doi.org/10.3390/rs70708830. + +Ilehag et al. “KLUM: An Urban VNIR and SWIR Spectral Library Consisting of Building Materials.” Remote Sensing 11, no. 18 (January 2019): 2149. https://doi.org/10.3390/rs11182149. + +Lindeni et al. “Imaging Spectroscopy of Urban Environments.” Surveys in Geophysics 40, no. 3 (May 1, 2019): 471–88. https://doi.org/10.1007/s10712-018-9486-y. + +Okujeni et al. “Support Vector Regression and Synthetically Mixed Training Data for Quantifying Urban Land Cover.” Remote Sensing of Environment 137 (October 1, 2013): 184–97. https://doi.org/10.1016/j.rse.2013.06.007. + +Zhao et al. “ASI: An Artificial Surface Index for Landsat 8 Imagery.” International Journal of Applied Earth Observation and Geoinformation 107 (March 1, 2022): 102703. https://doi.org/10.1016/j.jag.2022.102703. + diff --git a/2025_Advanced_Earth_Observation/requirements.txt b/2025_Advanced_Earth_Observation/requirements.txt new file mode 100644 index 0000000..84452c4 --- /dev/null +++ b/2025_Advanced_Earth_Observation/requirements.txt @@ -0,0 +1,99 @@ +affine==2.4.0 +attrs==25.3.0 +certifi==2025.4.26 +click==8.2.0 +click-plugins==1.1.1 +cligj==0.7.2 +numpy==2.2.6 +pyparsing==3.2.3 +rasterio==1.4.3 +affine==2.4.0 +attrs==25.3.0 +certifi==2025.4.26 +click==8.2.0 +click-plugins==1.1.1 +cligj==0.7.2 +numpy==2.2.6 +pandas==2.2.3 +pyparsing==3.2.3 +python-dateutil==2.9.0.post0 +pytz==2025.2 +rasterio==1.4.3 +six==1.17.0 +tzdata==2025.2 +affine==2.4.0 +attrs==25.3.0 +certifi==2025.4.26 +click==8.2.0 +click-plugins==1.1.1 +cligj==0.7.2 +numpy==2.2.6 +pandas==2.2.3 +pyparsing==3.2.3 +python-dateutil==2.9.0.post0 +pytz==2025.2 +rasterio==1.4.3 +six==1.17.0 +tzdata==2025.2 +affine==2.4.0 +attrs==25.3.0 +certifi==2025.4.26 +click==8.2.0 +click-plugins==1.1.1 +cligj==0.7.2 +Jinja2==3.1.6 +MarkupSafe==3.0.2 +numpy==2.2.6 +pandas==2.2.3 +pyparsing==3.2.3 +python-dateutil==2.9.0.post0 +pytz==2025.2 +rasterio==1.4.3 +six==1.17.0 +tzdata==2025.2 +affine==2.4.0 +attrs==25.3.0 +certifi==2025.4.26 +click==8.2.0 +click-plugins==1.1.1 +cligj==0.7.2 +contourpy==1.3.2 +cycler==0.12.1 +fonttools==4.58.0 +Jinja2==3.1.6 +kiwisolver==1.4.8 +MarkupSafe==3.0.2 +matplotlib==3.10.3 +numpy==2.2.6 +packaging==25.0 +pandas==2.2.3 +pillow==11.2.1 +pyparsing==3.2.3 +python-dateutil==2.9.0.post0 +pytz==2025.2 +rasterio==1.4.3 +six==1.17.0 +tzdata==2025.2 +affine==2.4.0 +attrs==25.3.0 +certifi==2025.4.26 +click==8.2.0 +click-plugins==1.1.1 +cligj==0.7.2 +contourpy==1.3.2 +cycler==0.12.1 +fonttools==4.58.0 +Jinja2==3.1.6 +kiwisolver==1.4.8 +MarkupSafe==3.0.2 +matplotlib==3.10.3 +numpy==2.2.6 +packaging==25.0 +pandas==2.2.3 +pillow==11.2.1 +pyparsing==3.2.3 +python-dateutil==2.9.0.post0 +pytz==2025.2 +rasterio==1.4.3 +six==1.17.0 +tzdata==2025.2 diff --git a/2025_Advanced_Earth_Observation/src/ChangeAnalysis.py b/2025_Advanced_Earth_Observation/src/ChangeAnalysis.py new file mode 100644 index 0000000..847b660 --- /dev/null +++ b/2025_Advanced_Earth_Observation/src/ChangeAnalysis.py @@ -0,0 +1,150 @@ +import csv +import rasterio +import numpy as np +import pandas as pd +import matplotlib.pyplot as plt + + +class ChangeAnalysis(): + def __init__(self, old_raster_path, new_raster_path, change_raster_path, report_csv_path, report_png_path): + + # Attributes + self.old_raster_path = old_raster_path + self.new_raster_path = new_raster_path + self.change_raster_path = change_raster_path + self.report_csv_path = report_csv_path + self.report_png_path = report_png_path + + print("Initializing ChangeAnalysis...\n") + + # Checks + self._check_resolution() + self._check_crs() + + # Calculated + self._compute_overlap_window() + self._create_change_raster() + self.change_matrix_np, self.change_matrix = self._create_change_matrix() + self._create_change_report_csv() + + print("Change analysis completed.\n") + + def _print_pixel_size(self, raster_path): + with rasterio.open(raster_path) as src: + transform = src.transform + pixel_width = abs(transform.a) + pixel_height = abs(transform.e) + print("Pixel size:", pixel_width, "x", pixel_height, "metre\n") + + def _get_pixel_size(self, raster_path): + with rasterio.open(raster_path) as src: + transform = src.transform + pixel_width = abs(transform.a) + pixel_height = abs(transform.e) + return pixel_width, pixel_height + + def _check_resolution(self): + self.pixel_size_old = self._get_pixel_size(self.old_raster_path) + self.pixel_size_new = self._get_pixel_size(self.new_raster_path) + if self.pixel_size_old != self.pixel_size_new: + raise ValueError(f"Pixel sizes of the input rasters do not match. Old raster has resolution of: { + self.pixel_size_old} and new raster has a resolution of: {self.pixel_size_new}") + else: + self.pixel_size = self.pixel_size_old + print(f"Pixel resolution check passed: {self.pixel_size}\n") + + def _check_crs(self): + with rasterio.open(self.old_raster_path) as src_old, rasterio.open(self.new_raster_path) as src_new: + if src_old.crs != src_new.crs: + raise ValueError( + "Error: Old and new rasters must have the same CRS for cropping.") + else: + print("CRS check passed.\n") + + def _compute_overlap_window(self): + print("Computing overlapping window...") + with rasterio.open(self.old_raster_path) as src_old, rasterio.open(self.new_raster_path) as src_new: + left = max(src_old.bounds.left, src_new.bounds.left) + bottom = max(src_old.bounds.bottom, src_new.bounds.bottom) + right = min(src_old.bounds.right, src_new.bounds.right) + top = min(src_old.bounds.top, src_new.bounds.top) + + if left >= right or bottom >= top: + raise ValueError("No overlapping extent.") + + self.bounds = (left, bottom, right, top) + self.window_old = src_old.window(left, bottom, right, top) + self.window_new = src_new.window(left, bottom, right, top) + print(f"Overlap window calculated: {self.bounds}\n") + + def _create_change_raster(self): + print("Creating change raster...") + with rasterio.open(self.old_raster_path) as src_old, rasterio.open(self.new_raster_path) as src_new: + old_data = src_old.read(1, window=self.window_old) + new_data = src_new.read(1, window=self.window_new) + + if old_data.shape != new_data.shape: + raise ValueError( + "Error: The cropped rasters do not have the same shape.") + + change_data = old_data * 10 + new_data + + out_transform = src_old.window_transform(self.window_old) + out_profile = src_old.profile.copy() + out_profile.update({ + 'height': old_data.shape[0], + 'width': old_data.shape[1], + 'transform': out_transform, + 'dtype': rasterio.int16, + 'count': 1, + 'compress': 'lzw' + }) + + with rasterio.open(self.change_raster_path, 'w', **out_profile) as dst: + dst.write(change_data.astype(rasterio.int16), 1) + print(f"Change raster created and saved to: { + self.change_raster_path}\n") + + def _create_change_matrix(self): + print("Creating change matrix...") + with rasterio.open(self.change_raster_path) as dataset: + change_data = dataset.read(1) + + flat_data = change_data.flatten() + + nodata = dataset.nodata + if nodata is not None: + flat_data = flat_data[flat_data != nodata] + + old_classes = flat_data // 10 + new_classes = flat_data % 10 + + matrix = {} + + for old, new in zip(old_classes, new_classes): + if (old, new) not in matrix: + matrix[(old, new)] = 0 + matrix[(old, new)] += 1 + + # Matrix numpy array + unique_old = sorted(set(old_classes)) + unique_new = sorted(set(new_classes)) + + mat_np = np.zeros( + (max(unique_old)+1, max(unique_new)+1), dtype=int) + + for (old, new), count in matrix.items(): + mat_np[old, new] = count + print("Change matrix created.\n") + return mat_np, matrix + + def _create_change_report_csv(self): + print(f"Writing change matrix to CSV: {self.report_csv_path}") + with open(self.report_csv_path, mode='w', newline='') as csvfile: + writer = csv.writer(csvfile) + header = ['Old/New'] + list(range(self.change_matrix_np.shape[1])) + writer.writerow(header) + + for old_class, row in enumerate(self.change_matrix_np): + writer.writerow([old_class] + list(row)) + print("CSV report created.\n") diff --git a/2025_Advanced_Earth_Observation/src/Classification.py b/2025_Advanced_Earth_Observation/src/Classification.py new file mode 100644 index 0000000..ab78cd1 --- /dev/null +++ b/2025_Advanced_Earth_Observation/src/Classification.py @@ -0,0 +1,79 @@ +import sys +import rasterio +from rasterio.features import rasterize +from rasterio import Affine +import geopandas as gpd +import numpy as np +from sklearn.decomposition import PCA +from sklearn.ensemble import RandomForestClassifier + + +def classification(path_raster, path_training, path_output): + raster = rasterio.open(path_raster) + bands = raster.read() + # print("Bands shape:", bands.shape) + meta = raster.meta + + # Flatten spatial dimensions for PCA: (393, 550*572) + X = bands.reshape(bands.shape[0], -1).T + + # Apply PCA + n_components = 20 + pca = PCA(n_components=n_components) + X_pca = pca.fit_transform(X) + + # Reshape back to image cube: (20, 550, 572) + bands_pca = X_pca.T.reshape(n_components, bands.shape[1], bands.shape[2]) + + # Training data + training = gpd.read_file(path_training) + if training.crs != raster.crs: + print(f"Reprojecting training data from { + training.crs} to {raster.crs}") + training = training.to_crs(raster.crs) + + # print(training.columns) + + label_raster = rasterize( + [(geom, class_id) for geom, class_id in zip( + training.geometry, training.Class_ID)], + out_shape=(bands.shape[1], bands.shape[2]), + transform=raster.transform, + fill=0, + dtype='int16' + ) + + # Flatten bands and labels + X_train = bands_pca.reshape(n_components, -1).T + y_train = label_raster.flatten() + + # Keep only labeled pixels + mask = y_train > 0 + X_train = X_train[mask] + y_train = y_train[mask] + + print("Training samples:", X_train.shape) + + clf = RandomForestClassifier(n_estimators=200, random_state=42) + clf.fit(X_train, y_train) + print("Classifier trained.") + + # Predict classes for all pixels + y_pred = clf.predict(X_pca) + classified = y_pred.reshape(bands.shape[1], bands.shape[2]) + print("Classification completed.") + + # Save classified map + meta.update({ + "count": 1, + "dtype": classified.dtype + }) + + with rasterio.open(path_output, "w", **meta) as dst: + dst.write(classified, 1) + + print(f"Classified map saved to: {path_output}") + + +if __name__ == "__main__": + classification(sys.argv[1], sys.argv[2], sys.argv[3]) diff --git a/2025_Advanced_Earth_Observation/src/ClassificationAnalysis.py b/2025_Advanced_Earth_Observation/src/ClassificationAnalysis.py new file mode 100644 index 0000000..a00667c --- /dev/null +++ b/2025_Advanced_Earth_Observation/src/ClassificationAnalysis.py @@ -0,0 +1,21 @@ +import rasterio +import numpy as np +import pandas as pd + + +def get_class_frequency(raster_path, metadata): + with rasterio.open(raster_path) as raster: + band = raster.read(1) + + nodata = raster.nodata + if nodata is not None: + band = band[band != nodata] + else: + band = band[~np.isnan(band)] + + values, counts = np.unique(band, return_counts=True) + df = pd.DataFrame({'class_id': values, 'count': counts}) + df = df.merge(metadata, on='class_id', how='left') + df = df[['class_name', 'count']] + + return df diff --git a/2025_Advanced_Earth_Observation/src/accuracy_assessment.py b/2025_Advanced_Earth_Observation/src/accuracy_assessment.py new file mode 100644 index 0000000..1f36e30 --- /dev/null +++ b/2025_Advanced_Earth_Observation/src/accuracy_assessment.py @@ -0,0 +1,85 @@ +import rasterio +import geopandas as gpd +from sklearn.metrics import confusion_matrix, classification_report +import numpy as np + + +def accuracy_assessment(classified_raster_path, reference_points_path, true_class_field): + """ + Perform accuracy assessment of classified raster using reference points. + + Parameters: + - classified_raster_path: str, path to classified TIFF raster file. + - reference_points_path: str, path to reference points vector file (GeoJSON or Shapefile). + - true_class_field: str, name of the attribute field in reference data containing true class labels. + + Returns: + - dict with confusion matrix, classification report, overall accuracy, and kappa coefficient. + """ + + # Load raster + raster = rasterio.open(classified_raster_path) + + # Load reference points + gdf = gpd.read_file(reference_points_path) + + # Reproject reference points to raster CRS if needed + if gdf.crs != raster.crs: + gdf = gdf.to_crs(raster.crs) + + # Extract raster values at point locations + coords = [(geom.x, geom.y) for geom in gdf.geometry] + raster_vals = [] + for val in raster.sample(coords): + if val.size > 0 and val[0] is not None: + raster_vals.append(val[0]) + else: + raster_vals.append(np.nan) + + gdf['predicted_class'] = raster_vals + + # Drop points where raster value could not be sampled (e.g., outside raster extent) + gdf = gdf.dropna(subset=['predicted_class']) + + # Convert predicted_class to int (if float) + gdf['predicted_class'] = gdf['predicted_class'].astype(int) + + y_true = gdf[true_class_field].values + y_pred = gdf['predicted_class'].values + + print("Unique classes in y_true:", np.unique(y_true)) + print("Unique classes in y_pred:", np.unique(y_pred)) + print("Anzahl Samples:", len(y_true)) + + # Compute confusion matrix + cm = confusion_matrix(y_true, y_pred) + + # Compute classification report (precision, recall, f1-score) + report = classification_report(y_true, y_pred, output_dict=True) + + # Overall accuracy + overall_accuracy = np.trace(cm) / np.sum(cm) + + # Kappa coefficient calculation + total = np.sum(cm) + sum_rows = np.sum(cm, axis=1) + sum_cols = np.sum(cm, axis=0) + expected_accuracy = np.sum(sum_rows * sum_cols) / (total ** 2) + kappa = (overall_accuracy - expected_accuracy) / (1 - expected_accuracy) + + # Print summary + print("Confusion Matrix:\n", cm) + print(f"Overall Accuracy: {overall_accuracy:.4f}") + print(f"Kappa Coefficient: {kappa:.4f}") + print("Classification Report (per class):") + for cls, metrics in report.items(): + if cls not in ['accuracy', 'macro avg', 'weighted avg']: + print(f"Class {cls}: Precision={metrics['precision']:.3f}, Recall={ + metrics['recall']:.3f}, F1-score={metrics['f1-score']:.3f}") + + return { + 'confusion_matrix': cm, + 'classification_report': report, + 'overall_accuracy': overall_accuracy, + 'kappa_coefficient': kappa + } diff --git a/2025_Advanced_Earth_Observation/src/clip_tiff.py b/2025_Advanced_Earth_Observation/src/clip_tiff.py new file mode 100644 index 0000000..f4f0ffc --- /dev/null +++ b/2025_Advanced_Earth_Observation/src/clip_tiff.py @@ -0,0 +1,42 @@ +import sys +import rasterio +from rasterio.mask import mask +import geopandas as gpd + + +def clip_tiff(tiff_path, gpkg_path, output_path): + vector = gpd.read_file(gpkg_path) + + with rasterio.open(tiff_path) as src: + if vector.crs != src.crs: + vector = vector.to_crs(src.crs) + + geometries = [feature["geometry"] + for feature in vector.__geo_interface__['features']] + + out_image, out_transform = mask(src, geometries, crop=True) + out_meta = src.meta.copy() + + out_meta.update({ + "driver": "GTiff", + "height": out_image.shape[1], + "width": out_image.shape[2], + "transform": out_transform + }) + + with rasterio.open(output_path, "w", **out_meta) as dest: + dest.write(out_image) + + print(f"Clipped raster saved to: {output_path}") + + +if __name__ == "__main__": + if len(sys.argv) != 4: + print("Usage: python clip_tiff.py ") + sys.exit(1) + + tiff_file = sys.argv[1] + gpkg_file = sys.argv[2] + output_file = sys.argv[3] + + clip_tiff(tiff_file, gpkg_file, output_file) diff --git a/2025_Advanced_Earth_Observation/src/empty_png.py b/2025_Advanced_Earth_Observation/src/empty_png.py new file mode 100644 index 0000000..560c903 --- /dev/null +++ b/2025_Advanced_Earth_Observation/src/empty_png.py @@ -0,0 +1,16 @@ +from PIL import Image + + +def empty_png(path): + + # Set the size of the image (width, height) + width = 800 + height = 600 + + # Create a new transparent image (RGBA mode) + transparent_image = Image.new("RGBA", (width, height), (0, 0, 0, 0)) + + # Save the image as PNG + transparent_image.save(path) + + print("Transparent PNG created successfully!") diff --git a/2025_Advanced_Earth_Observation/src/extract_tiff_metadata.py b/2025_Advanced_Earth_Observation/src/extract_tiff_metadata.py new file mode 100644 index 0000000..ab7b892 --- /dev/null +++ b/2025_Advanced_Earth_Observation/src/extract_tiff_metadata.py @@ -0,0 +1,72 @@ +import rasterio +import os +import csv +from rasterio.warp import transform_bounds +from pyproj import Geod + + +def extract_tiff_metadata(tiff_path, output_csv_path): + """ + Extracts metadata from a TIFF file and writes it to a CSV file. + + :param tiff_path: Path to the TIFF file + :param output_csv_path: Path to save the metadata CSV file + """ + try: + with rasterio.open(tiff_path) as dataset: + pixel_size_x, pixel_size_y = dataset.res + crs = dataset.crs + geod = Geod(ellps="WGS84") + + if crs.is_projected: + # Units are already linear (e.g., meters) + crs_unit = crs.linear_units + pixel_area = abs(pixel_size_x * pixel_size_y) + pixel_size_x_m = pixel_size_x + pixel_size_y_m = pixel_size_y + else: + # CRS is geographic (degrees), compute approximate linear size + bounds = dataset.bounds + + # Approximate pixel size X in meters + lon1, lat1 = bounds.left, bounds.bottom + lon2, lat2 = bounds.left + pixel_size_x, bounds.bottom + distance_x, _, _ = geod.inv(lon1, lat1, lon2, lat2) + + # Approximate pixel size Y in meters + lon3, lat3 = bounds.left, bounds.bottom + lon4, lat4 = bounds.left, bounds.bottom + pixel_size_y + distance_y, _, _ = geod.inv(lon3, lat3, lon4, lat4) + + pixel_size_x_m = abs(distance_x) + pixel_size_y_m = abs(distance_y) + crs_unit = "meters" + pixel_area = pixel_size_x_m * pixel_size_y_m + + meta_info = { + "Filename": os.path.basename(tiff_path), + "Width (pixels)": dataset.width, + "Height (pixels)": dataset.height, + "Number of Bands": dataset.count, + "Coordinate Reference System (CRS)": str(crs), + "Pixel Area": f"{pixel_area:.1f} {crs_unit}²", + } + + # Write metadata to CSV file + with open(output_csv_path, mode='w', newline='') as csvfile: + writer = csv.writer(csvfile) + writer.writerow(["Key", "Value"]) + for key, value in meta_info.items(): + writer.writerow([key, value]) + + print(f"Metadata written to {output_csv_path}") + + except Exception as e: + print(f"Error: {e}") + + +# Example usage +if __name__ == "__main__": + tiff_file = "example.tif" # Path to your TIFF file + output_file = "metadata_output.csv" # Path to output CSV file + extract_tiff_metadata(tiff_file, output_file) diff --git a/2025_Advanced_Earth_Observation/src/gpkg2png.py b/2025_Advanced_Earth_Observation/src/gpkg2png.py new file mode 100644 index 0000000..c3afce1 --- /dev/null +++ b/2025_Advanced_Earth_Observation/src/gpkg2png.py @@ -0,0 +1,57 @@ +import os +import sys +import matplotlib.pyplot as plt +import geopandas as gpd +import rasterio +from rasterio.plot import show as rioshow + + +def gpkg2png(input_path, base_path, output_path, title, color): + # Load vector data + data = gpd.read_file(input_path) + + # Load raster base map + with rasterio.open(base_path) as src: + base_crs = src.crs + raster_data = src.read() + + # Reproject vector data if CRS differs + if data.crs != base_crs: + data = data.to_crs(base_crs) + + # Set up figure and axes + fig, ax = plt.subplots() + fig.patch.set_facecolor(color) + ax.set_xlabel("Longitude", color="white") + ax.set_ylabel("Latitude", color="white") + + ax.ticklabel_format(style='plain', axis='both', useOffset=False) + # Plot raster background + rioshow(raster_data, transform=src.transform, ax=ax) + + # Plot vector data + data.plot( + ax=ax, + facecolor="none", # Transparent fill + edgecolor="white", # White border for circles + linewidth=1, # Thickness of circle edges + alpha=0.7, # Transparency for the edges + marker='o', # Ensure point geometries are circles + markersize=100 # Adjust size as needed + ) + # Style adjustments + for label in (ax.get_xticklabels() + ax.get_yticklabels()): + label.set_color("white") + + ax.set_title(title, color="white") + ax.tick_params(color="white") + ax.set_facecolor(color) + for spine in ax.spines.values(): + spine.set_color("white") + + plt.savefig(output_path, bbox_inches='tight', + facecolor=fig.get_facecolor()) + + +if __name__ == "__main__": + gpkg2png(sys.argv[1], sys.argv[2], sys.argv[3]) diff --git a/2025_Advanced_Earth_Observation/src/load_gpkg_to_df.py b/2025_Advanced_Earth_Observation/src/load_gpkg_to_df.py new file mode 100644 index 0000000..6ca84e3 --- /dev/null +++ b/2025_Advanced_Earth_Observation/src/load_gpkg_to_df.py @@ -0,0 +1,27 @@ +import geopandas as gpd +import pandas as pd + + +def load_gpkg_to_dataframe(gpkg_path, layer_name=None): + """ + Load attribute data from a GeoPackage into a pandas DataFrame. + + Parameters: + - gpkg_path (str): Path to the GeoPackage file (.gpkg). + - layer_name (str, optional): Name of the layer in the GeoPackage. + If None, the first layer will be used. + + Returns: + - pd.DataFrame: DataFrame containing attribute data (geometry excluded). + """ + # Load the GeoPackage layer into a GeoDataFrame + gdf = gpd.read_file(gpkg_path, layer=layer_name) + + # Drop the geometry column if it exists + if 'geometry' in gdf.columns: + gdf = gdf.drop(columns='geometry') + + # Convert to pandas DataFrame + df = pd.DataFrame(gdf) + + return df diff --git a/2025_Advanced_Earth_Observation/src/main.py b/2025_Advanced_Earth_Observation/src/main.py new file mode 100644 index 0000000..3e9b1f6 --- /dev/null +++ b/2025_Advanced_Earth_Observation/src/main.py @@ -0,0 +1,215 @@ +from ClassificationAnalysis import get_class_frequency +from ChangeAnalysis import ChangeAnalysis +from Classification import classification +from plot_tiff import plot_tiff +from plot_tiff_rgb import plot_tiff_rgb +from plot_tiff_2 import plot_tiff_2 +from plot_table import plot_table +from clip_tiff import clip_tiff +from extract_tiff_metadata import extract_tiff_metadata +from load_gpkg_to_df import load_gpkg_to_dataframe +from gpkg2png import gpkg2png +from empty_png import empty_png +from accuracy_assessment import accuracy_assessment +import pandas as pd + + +def create_accuracy_df(overall_accuracy, kappa): + data = { + "Metric": ["Overall Accuracy", "Kappa Coefficient"], + "Value": [overall_accuracy, kappa] + } + df = pd.DataFrame(data) + return df + + +def main(): + + # empty png + empty_png('results/empty.png') + + # Paths + golm = "data/RGBI_10cm_2022.tif" + + hyperspectral_2018_raster = "data/Hyperspectral_2018.tiff" + hyperspectral_2018_training = "data/training_2018.gpkg" + classified_2018_raster = "results/classified_2018.tiff" + classified_2018_map = "results/classified_2018.png" + classified_2018_table = "results/frequencies_2018.png" + + hyperspectral_2024_raster = "data/Hyperspectral_2024.tif" + hyperspectral_2024_training = "data/training_2024.gpkg" + classified_2024_raster = "results/classified_2024.tiff" + classified_2024_map = "results/classified_2024.png" + classified_2024_table = "results/frequencies_2024.png" + + metadata = pd.read_csv("data/metadata.csv") + change = "results/change.tiff" + report_csv = "results/report.csv" + report_png = "results/report.png" + + # Classification + classification( + hyperspectral_2018_raster, + hyperspectral_2018_training, + classified_2018_raster + ) + + classification( + hyperspectral_2024_raster, + hyperspectral_2024_training, + classified_2024_raster + ) + clip_tiff(classified_2018_raster, + "data/CampusGolm_Clipper.gpkg", classified_2018_raster) + clip_tiff(classified_2024_raster, + "data/CampusGolm_Clipper.gpkg", classified_2024_raster) + plot_tiff(classified_2018_raster, classified_2018_map, + metadata, "2018", '#202228') + plot_tiff(classified_2024_raster, classified_2024_map, + metadata, "2024", '#202228') + + # Classification accuracy + result_2018 = accuracy_assessment( + classified_raster_path=classified_2018_raster, + reference_points_path='data/validation_2018.gpkg', + true_class_field="Class_ID" + ) + + cm_2018 = result_2018['confusion_matrix'] + cm_df_2018 = pd.DataFrame(cm_2018, index=metadata['class_name'].to_list( + ), columns=metadata['class_name'].to_list()) + plot_table(cm_df_2018, 'results/confusion_matrix_2018.png', + '2018', '#202228', True) + + oa_2018 = "{:.2f}".format(result_2018['overall_accuracy']) + kp_2018 = "{:.2f}".format(result_2018['kappa_coefficient']) + df_acc_2018 = create_accuracy_df(oa_2018, kp_2018) + plot_table(df_acc_2018, 'results/accuracy_2018.png', '2018', '#202228') + + result_2024 = accuracy_assessment( + classified_raster_path=classified_2024_raster, + reference_points_path='data/validation_2018.gpkg', + true_class_field="Class_ID" + ) + + cm_2024 = result_2024['confusion_matrix'] + cm_df_2024 = pd.DataFrame(cm_2024, index=metadata['class_name'].to_list( + ), columns=metadata['class_name'].to_list()) + plot_table(cm_df_2024, 'results/confusion_matrix_2024.png', + '2024', '#202228', True) + + oa_2024 = "{:.2f}".format(result_2024['overall_accuracy']) + kp_2024 = "{:.2f}".format(result_2024['kappa_coefficient']) + df_acc_2024 = create_accuracy_df(oa_2024, kp_2024) + plot_table(df_acc_2024, 'results/accuracy_2024.png', '2024', '#202228') + + # Classification Analysis + classified_2018_class_frequency = get_class_frequency( + classified_2018_raster, metadata) + classified_2024_class_frequency = get_class_frequency( + classified_2024_raster, metadata) + plot_table(classified_2018_class_frequency, + classified_2018_table, "2018", "#202228") + plot_table(classified_2024_class_frequency, + classified_2024_table, "2024", "#202228") + + # Change Analysis + change_analysis = ChangeAnalysis( + classified_2018_raster, classified_2024_raster, change, report_csv, report_png) + clip_tiff(change, + "data/CampusGolm_Clipper.gpkg", change) + + report = pd.read_csv(report_csv) + plot_table(report, report_png, 'Change Report', '#202228') + plot_tiff_2(change, "results/change.png", '', "#202228") + # Plot metadata + metadata_plot = metadata[["class_name", "class_id"]] + metadata_plot = metadata_plot.rename( + columns={'class_name': 'Material', 'class_id': 'ID'}) + plot_table(metadata_plot, "results/metadata.png", "", '#202228') + + # Extract metadata + extract_tiff_metadata(hyperspectral_2018_raster, "results/meta_2018.csv") + plot_table(pd.read_csv('results/meta_2018.csv'), + 'results/meta_2018.png', '2018', '#202228') + extract_tiff_metadata(hyperspectral_2024_raster, "results/meta_2024.csv") + + plot_table(pd.read_csv('results/meta_2024.csv'), + 'results/meta_2024.png', '2024', '#202228') + # Add training data to metadata + training_2018_meta = load_gpkg_to_dataframe(hyperspectral_2018_training) + training_2018_meta = training_2018_meta[['name', 'Class_ID']] + + training_2018_meta = ( + training_2018_meta.groupby(['Class_ID', 'name']) + .size() + .reset_index(name="count") + ) + training_2018_meta = training_2018_meta.sort_values( + by='Class_ID', ascending=True).reset_index(drop=True) + + training_2018_meta = training_2018_meta[['name', 'count']] + training_2018_meta = training_2018_meta.rename( + columns={"name": 'Material', "count": 'Samples'}) + plot_table(training_2018_meta, + "results/training_2018_meta.png", '2018', '#202228') + + training_2024_meta = load_gpkg_to_dataframe(hyperspectral_2024_training) + training_2024_meta = training_2024_meta[['name', 'Class_ID']] + + training_2024_meta = ( + training_2024_meta.groupby(['Class_ID', 'name']) + .size() + .reset_index(name="count") + ) + + training_2024_meta = training_2024_meta.sort_values( + by='Class_ID', ascending=True).reset_index(drop=True) + + training_2024_meta = training_2024_meta[['name', 'count']] + training_2024_meta = training_2024_meta.rename( + columns={"name": 'Material', "count": 'Samples'}) + plot_table(training_2024_meta, + "results/training_2024_meta.png", '2024', '#202228') + + # Plot training data + gpkg2png(hyperspectral_2018_training, + "data/RGBI_20cm_2021.tiff", "results/training2018.png", '2018', "#202228") + gpkg2png(hyperspectral_2024_training, + "data/RGBI_20cm_2021.tiff", "results/training2024.png", '2024', "#202228") + + # Diff + # Merge + classified_difference = pd.merge( + classified_2018_class_frequency, + classified_2024_class_frequency, + on="class_name", + how="inner" + ) + + # Compute difference + classified_difference['change'] = ( + classified_difference['count_y'] - classified_difference['count_x'] + ) + + with open('results/area.txt', 'r') as f: + total_area = float(f.read().strip()) + + classified_difference['percent_change'] = ( + (classified_difference['change'] / total_area) * 100 + ).round(2) + # Sort by 'change' + classified_difference = classified_difference.sort_values( + "change", ascending=False + ) + + classified_difference = classified_difference[[ + 'class_name', 'change', 'percent_change']] + classified_difference = classified_difference.rename( + columns={"class_name": "Material", "change": "Change in m²", "percent_change": "Change in %"}) + plot_table(classified_difference, 'results/difference.png', '', "#202228") + + +if __name__ == "__main__": + main() diff --git a/2025_Advanced_Earth_Observation/src/plot_table.py b/2025_Advanced_Earth_Observation/src/plot_table.py new file mode 100644 index 0000000..619565e --- /dev/null +++ b/2025_Advanced_Earth_Observation/src/plot_table.py @@ -0,0 +1,48 @@ +import pandas as pd +import matplotlib.pyplot as plt + + +def plot_table(df, output_path, title, color, print_index=False): + fig, ax = plt.subplots() + + fig.patch.set_facecolor(color) + fig.tight_layout() + ax.axis('off') + ax.axis('tight') + ax.set_facecolor(color) + + # Prepare cellText and colLabels depending on print_index + if print_index: + # Insert index as first column + cell_text = pd.concat( + [df.index.to_frame(index=False), df.reset_index(drop=True)], axis=1).values + col_labels = [ + df.index.name if df.index.name else 'Index'] + list(df.columns) + else: + cell_text = df.values + col_labels = df.columns + + table = ax.table( + cellText=cell_text, + colLabels=col_labels, + cellLoc='center', + loc='center' + ) + ax.tick_params(colors="white") + ax.set_title(title, color="white") + + for spine in ax.spines.values(): + spine.set_color("white") + + for key, cell in table.get_celld().items(): + cell.set_facecolor(color) # use your passed color + cell.get_text().set_color("white") # make text white for contrast + cell.set_edgecolor("white") + + if key[0] == 0: # header row + cell.get_text().set_weight('bold') + + table.scale(1, 2) + + plt.savefig(output_path, dpi=300, bbox_inches='tight') + plt.close() diff --git a/2025_Advanced_Earth_Observation/src/plot_tiff.py b/2025_Advanced_Earth_Observation/src/plot_tiff.py new file mode 100644 index 0000000..5e9f528 --- /dev/null +++ b/2025_Advanced_Earth_Observation/src/plot_tiff.py @@ -0,0 +1,50 @@ +import os +import sys +import matplotlib.pyplot as plt +import matplotlib.colors as mcolors +import matplotlib.patches as mpatches +import geopandas as gpd +import rasterio +from rasterio.plot import show +import pandas as pd + + +def plot_tiff(input_path, output_path, meta, title, color="#00000"): + class_names = meta['class_name'].tolist() + class_ids = meta['class_id'].tolist() + colors = meta['class_color'].tolist() + + cmap = mcolors.ListedColormap(colors) + norm = mcolors.BoundaryNorm(class_ids + [max(class_ids)+1], cmap.N) + legend_patches = [mpatches.Patch( + color=colors[i], label=class_names[i]) for i in range(len(class_names))] + + raster = rasterio.open(input_path) + + fig, ax = plt.subplots() + fig.patch.set_facecolor(color) + show(raster, ax=ax, cmap=cmap, norm=norm) + ax.get_xaxis().get_major_formatter().set_useOffset(False) + ax.get_yaxis().get_major_formatter().set_useOffset(False) + ax.ticklabel_format(style='plain', axis='both', useOffset=False) + + ax.set_xlabel("Longitude", color="white") + ax.set_ylabel("Latitude", color="white") + for label in (ax.get_xticklabels() + ax.get_yticklabels()): + label.set_color("white") + ax.set_title(title, color="white") + ax.tick_params(color="white") + ax.set_facecolor(color) + for spine in ax.spines.values(): + spine.set_color("white") + patches = [mpatches.Patch(color=colors[i], label=class_names[i]) + for i in range(len(class_names))] + ax.legend(handles=patches, loc="upper right", + fontsize='small', frameon=True, facecolor=color, # legend background + edgecolor=color, # legend border color + labelcolor="white", framealpha=1.0) + plt.savefig(output_path) + + +if __name__ == "__main__": + plot_tiff(sys.argv[1], sys.argv[2]) diff --git a/2025_Advanced_Earth_Observation/src/plot_tiff_2.py b/2025_Advanced_Earth_Observation/src/plot_tiff_2.py new file mode 100644 index 0000000..f5677ef --- /dev/null +++ b/2025_Advanced_Earth_Observation/src/plot_tiff_2.py @@ -0,0 +1,41 @@ +import sys +import matplotlib.pyplot as plt +from rasterio.plot import show +import rasterio + + +def plot_tiff_2(input_path, output_path, title, background_color="#000000"): + # Open the raster + raster = rasterio.open(input_path) + + # Use a built-in colormap (e.g., "rainbow") + cmap = plt.get_cmap("rainbow") + + # Plot + fig, ax = plt.subplots() + fig.patch.set_facecolor(background_color) + show(raster, ax=ax, cmap=cmap) + ax.get_xaxis().get_major_formatter().set_useOffset(False) + ax.get_yaxis().get_major_formatter().set_useOffset(False) + ax.ticklabel_format(style='plain', axis='both', useOffset=False) + + # Style axes and title + ax.set_xlabel("Longitude", color="white") + ax.set_ylabel("Latitude", color="white") + for label in (ax.get_xticklabels() + ax.get_yticklabels()): + label.set_color("white") + ax.set_title(title, color="white") + ax.tick_params(color="white") + ax.set_facecolor(background_color) + for spine in ax.spines.values(): + spine.set_color("white") + + # Save figure + plt.savefig(output_path) + + +if __name__ == "__main__": + input_path = sys.argv[1] + output_path = sys.argv[2] + title = sys.argv[3] if len(sys.argv) > 3 else "Raster Plot" + plot_tiff_2(input_path, output_path, title) diff --git a/2025_Advanced_Earth_Observation/src/plot_tiff_rgb.py b/2025_Advanced_Earth_Observation/src/plot_tiff_rgb.py new file mode 100644 index 0000000..ade9190 --- /dev/null +++ b/2025_Advanced_Earth_Observation/src/plot_tiff_rgb.py @@ -0,0 +1,23 @@ +import os +import sys +import matplotlib.pyplot as plt +import rasterio +from rasterio.plot import show + + +def plot_tiff_rgb(input_path, output_path): + with rasterio.open(input_path) as src: + rgb = src.read([1, 2, 3]) + + # Plot + fig, ax = plt.subplots() + show(rgb, transform=src.transform, ax=ax) + ax.set_xlabel("Longitude") + ax.set_ylabel("Latitude") + + # Save the figure + plt.savefig(output_path, dpi=300, bbox_inches='tight') + + +if __name__ == "__main__": + plot_tiff_rgb(sys.argv[1], sys.argv[2]) diff --git a/2025_Praxis_der_Programmierung/BaumHashSet.java b/2025_Praxis_der_Programmierung/BaumHashSet.java new file mode 100644 index 0000000..578178b --- /dev/null +++ b/2025_Praxis_der_Programmierung/BaumHashSet.java @@ -0,0 +1,50 @@ +import java.util.HashSet; + +public class BaumHashSet { + public static void main(String[] args) { + int n = 17; + + HashSet baumSet = new HashSet<>(); + + for (int i = 0; i < n; i++) { + baumSet.add(i * 2); + } + + for (Integer value : baumSet) { + System.out.println(value); + } + + Integer smallestGreater = null; + + for (Integer value : baumSet) { + if (value > n) { + if (smallestGreater == null || value < smallestGreater) { + smallestGreater = value; + } + } + } + + if (smallestGreater != null) { + System.out.println("Smallest element > " + n + ": " + smallestGreater); + } else { + System.out.println("No element greater than " + n); + } + + Integer smallest = null; + for (Integer value : baumSet) { + if (smallest == null || value < smallest) { + smallest = value; + } + } + + if (smallest != null) { + System.out.println("Smallest element: " + smallest); + baumSet.remove(smallest); // Remove it + } else { + System.out.println("Set is empty"); + } + + System.out.println("Set after removal: " + baumSet); + + } +} diff --git a/2025_Praxis_der_Programmierung/BaumMap.java b/2025_Praxis_der_Programmierung/BaumMap.java new file mode 100644 index 0000000..ca9de3d --- /dev/null +++ b/2025_Praxis_der_Programmierung/BaumMap.java @@ -0,0 +1,32 @@ +import java.util.TreeMap; + +public class BaumMap { + + public static void main(String[] args) { + + int n = 17; + + TreeMap baumMap = new TreeMap<>(); + + for (int i = 0; i < n; i++) { + baumMap.put(i, i * 2); + } + + for (Integer value : baumMap.values()) { + System.out.println(value); + } + + Integer c = null; + for (Integer value : baumMap.values()) { + if (value > n) { + c = value; + System.out.println(c); + break; + } + } + + var d = baumMap.pollFirstEntry(); + System.out.println(d.getValue()); + + } +} diff --git a/2025_Praxis_der_Programmierung/BaumSet.java b/2025_Praxis_der_Programmierung/BaumSet.java new file mode 100644 index 0000000..d6c19a2 --- /dev/null +++ b/2025_Praxis_der_Programmierung/BaumSet.java @@ -0,0 +1,26 @@ +import java.util.TreeSet; + +public class BaumSet { + + public static void main(String[] args) { + + int n = 17; + + TreeSet baumSet = new TreeSet<>(); + + for (int i = 0; i < n; i++) { + baumSet.add(i * 2); + } + + for (Integer baum : baumSet) { + System.out.println(baum); + } + + int c = baumSet.higher(n); + System.out.println(c); + + int d = baumSet.pollFirst(); + System.out.println(d); + + } +} diff --git a/2025_Praxis_der_Programmierung/Bindung.java b/2025_Praxis_der_Programmierung/Bindung.java new file mode 100644 index 0000000..f1d8244 --- /dev/null +++ b/2025_Praxis_der_Programmierung/Bindung.java @@ -0,0 +1,30 @@ + +/** Bindung.java + * + * Eine Klasse, die am Beispiel des figure-Pakets + * statische und dynamische Typen ausprobiert + */ + +import figure.*; + +class Bindung { + + public static void main(String[] args) { + + Figure f = new Square(1); + f.moveTo(2, 3); + f.getArea(); + // f.show(); + + if (f instanceof Square) { + ((Square) f).show(); // analog: (double)17 + } + + System.out.println("Flaecheninhalt: " + f.getArea()); + f = new Circle(10); + System.out.println("Flaecheninhalt: " + f.getArea()); + + } +} + +// Bindung diff --git a/2025_Praxis_der_Programmierung/Buch.java b/2025_Praxis_der_Programmierung/Buch.java new file mode 100644 index 0000000..ef079d6 --- /dev/null +++ b/2025_Praxis_der_Programmierung/Buch.java @@ -0,0 +1,27 @@ +public class Buch extends Printmedia { + + public Buch(int currentPage, int maxPage) { + super(currentPage, maxPage); + } + + public static void main(String[] args) { + Buch lotr1 = new Buch(0, 448); + try { + lotr1.read(500); + } catch (RuntimeException e) { + System.out.println("Fehler beim lesen: " + e.getMessage()); + } + + System.out.println("Aktuelle Seiten nach dem Leseversuch: " + lotr1.getCurrentPage()); + + try { + lotr1.read(100); + } catch (RuntimeException e) { + System.out.println("Fehler beim lesen: " + e.getMessage()); + } + + System.out.println("Aktuelle Seiten nach dem Leseversuch: " + lotr1.getCurrentPage()); + lotr1.maxPage = 531; + System.out.println("Aktuelle Seiten nach dem Leseversuch: " + lotr1.getMaxPage()); + } +} diff --git a/2025_Praxis_der_Programmierung/Circle.java b/2025_Praxis_der_Programmierung/Circle.java new file mode 100644 index 0000000..c21ba38 --- /dev/null +++ b/2025_Praxis_der_Programmierung/Circle.java @@ -0,0 +1,41 @@ +package figure; + +public class Circle extends Figure { + + private int radius; + + public Circle() { + super(0, 0); + this.radius = 0; + } + + public Circle(int radius) { + super(0, 0); + this.radius = radius; + } + + public Circle(int x, int y, int radius) { + super(x, y); + this.radius = radius; + } + + @Override + public int getSize() { + return radius; + } + + @Override + public void setSize(int radius) { + this.radius = radius; + } + + @Override + public double getArea() { + return 3.14 * radius * radius; + } + + @Override + public double getPerimeter() { + return 2 * 3.14 * radius; + } +} diff --git a/2025_Praxis_der_Programmierung/Display.java b/2025_Praxis_der_Programmierung/Display.java new file mode 100644 index 0000000..d744146 --- /dev/null +++ b/2025_Praxis_der_Programmierung/Display.java @@ -0,0 +1,22 @@ +public class Display { + + static void display(int n) { + int m = 11; + System.out.printf("A1: m = %d, n = %d\n", m, n); + } + + public static void main(String[] args) { + + int a = 12; + int m = 1; + int n = 2; + display(a); + + if (m == 1) { + int n2 = 22; + System.out.printf("A2: m = %d, n = %d\n", m, n2); + } + + System.out.printf("A3: m = %d, n = %d\n", m, n); + } +} diff --git a/2025_Praxis_der_Programmierung/Figure.java b/2025_Praxis_der_Programmierung/Figure.java new file mode 100644 index 0000000..7045cf9 --- /dev/null +++ b/2025_Praxis_der_Programmierung/Figure.java @@ -0,0 +1,39 @@ +package figure; + +public abstract class Figure { + private Point pos; + + // only visible to subclasses + + protected Figure() { + this.pos = new Point(); + } + + protected Figure(int x, int y) { + this.pos = new Point(x, y); + } + + // public methods + + public String getPos() { + return this.pos.toString(); + } + + public void moveTo(int x, int y) { + this.pos.moveTo(x, y); + } + + public void moveBy(int x, int y) { + this.pos.moveBy(x, y); + } + + // abstract methods + + public abstract int getSize(); + + public abstract void setSize(int size); + + public abstract double getArea(); + + public abstract double getPerimeter(); +} diff --git a/2025_Praxis_der_Programmierung/Gcd.java b/2025_Praxis_der_Programmierung/Gcd.java new file mode 100644 index 0000000..babb221 --- /dev/null +++ b/2025_Praxis_der_Programmierung/Gcd.java @@ -0,0 +1,26 @@ +class Gcd{ + public static int gcd(int num, int denom){ + + int x = num; + int y = denom; + + if (x == 0) + return y; + if (y == 0) + return x; + + if (x < 0) + x = -x; + if (y < 0) + y = -y; + + while (x != y) { + if (x > y) + x = x - y; + else + y = y - x; + } + + return x; + } +} diff --git a/2025_Praxis_der_Programmierung/Geschirr.java b/2025_Praxis_der_Programmierung/Geschirr.java new file mode 100644 index 0000000..7672834 --- /dev/null +++ b/2025_Praxis_der_Programmierung/Geschirr.java @@ -0,0 +1,21 @@ +public abstract class Geschirr{ + protected int durchmesser; + protected int hoehe; + protected int gewicht; + protected char function; + + public Geschirr(int durchmesser, int hoehe, int gewicht, char function){ + this.durchmesser = durchmesser; + this.hoehe = hoehe; + this.gewicht = gewicht; + this.function = function; + } + + public int getGewicht(){ + return gewicht; + } + + public void setGewicht(int gewicht){ + this.gewicht = gewicht; + } +} diff --git a/2025_Praxis_der_Programmierung/Geschirrschrank.java b/2025_Praxis_der_Programmierung/Geschirrschrank.java new file mode 100644 index 0000000..9dda788 --- /dev/null +++ b/2025_Praxis_der_Programmierung/Geschirrschrank.java @@ -0,0 +1,20 @@ +public class Geschirrschrank{ + private int kapazitaet; + + public Geschirrschrank(){ + this.kapazitaet = 0; + } + + public Geschirrschrank(int kapazitaet){ + this.kapazitaet = kapazitaet; + } + + public void einraeumen(Geschirr pGeschirr){ + if (pGeschirr.getGewicht() <= kapazitaet) { + kapazitaet -= pGeschirr.getGewicht(); + System.out.println("Geschirr eingeräumt. Verbleibende Kapazität: " + kapazitaet + " g"); + } else { + System.out.println("Nicht genug Platz im Schrank!"); + } + } +} diff --git a/2025_Praxis_der_Programmierung/Glas.java b/2025_Praxis_der_Programmierung/Glas.java new file mode 100644 index 0000000..57a9fe9 --- /dev/null +++ b/2025_Praxis_der_Programmierung/Glas.java @@ -0,0 +1,5 @@ +public class Glas extends Geschirr{ + public Glas(int durchmesser, int hoehe, int gewicht, char function){ + super(durchmesser, hoehe, gewicht, function); + } +} diff --git a/2025_Praxis_der_Programmierung/HashSetExample.java b/2025_Praxis_der_Programmierung/HashSetExample.java new file mode 100644 index 0000000..1e2fce8 --- /dev/null +++ b/2025_Praxis_der_Programmierung/HashSetExample.java @@ -0,0 +1,16 @@ +import java.util.HashSet; + +public class HashSetExample { + public static void main(String[] args) { + HashSet baume = new HashSet<>(); + + baume.add("Aal"); + baume.add("Tanne"); + baume.add("Birke"); + baume.add("Baum"); + + for (String baum : baume) { + System.out.println(baum); + } + } +} diff --git a/2025_Praxis_der_Programmierung/List.java b/2025_Praxis_der_Programmierung/List.java new file mode 100644 index 0000000..70435a9 --- /dev/null +++ b/2025_Praxis_der_Programmierung/List.java @@ -0,0 +1,63 @@ +public class List { + private ListElement head; + + public void insert(ListElement elem) { + elem.next = head; + head = elem; + } + + public void insert(ListElement newElem, int i) { + if (i == 0) + insert(newElem); + else { + ListElement tmp = head; + ListElement prev = null; + int l = 0; + // Aufsuchen des i-ten Elements + while (l < i) { + prev = tmp; + tmp = prev.next; + l++; + } // l == i ist erreicht + prev.next = newElem; + newElem.next = tmp; + } + } + + public boolean delete() { + if (head == null) { + return false; + } + head = head.next; + return true; + } + + public boolean isEmpty() { + return head == null; + } + + public int length() { + int count = 0; + ListElement current = head; + while (current != null) { + count++; + current = current.next; + } + return count; + } + + public void show() { + ListElement current = head; + if (current == null) { + System.out.println("List is empty."); + return; + } + System.out.print("List: "); + while (current != null) { + System.out.print(current.data + " -> "); + current = current.next; + } + System.out.println("null"); + + } +} diff --git a/2025_Praxis_der_Programmierung/ListElement.java b/2025_Praxis_der_Programmierung/ListElement.java new file mode 100644 index 0000000..887c63e --- /dev/null +++ b/2025_Praxis_der_Programmierung/ListElement.java @@ -0,0 +1,30 @@ +public class ListElement { + public T data; + public ListElement next; + + public ListElement(T data) { + this.data = data; + this.next = null; + } + + public ListElement(T data, ListElement next) { + this.data = data; + this.next = next; + } + + public T getData() { + return this.data; + } + + public void setData(T data) { + this.data = data; + } + + public ListElement getNext() { + return this.next; + } + + public void setNext(ListElement next) { + this.next = next; + } +} diff --git a/2025_Praxis_der_Programmierung/Lokomotive.java b/2025_Praxis_der_Programmierung/Lokomotive.java new file mode 100644 index 0000000..cbf2fd8 --- /dev/null +++ b/2025_Praxis_der_Programmierung/Lokomotive.java @@ -0,0 +1,21 @@ +public class Lokomotive extends Zugteil { + private int id; + private String name; + private int maxWaggons; + + public Lokomotive(int laenge, boolean status, int id, String name, int maxWaggons) { + super(laenge, status); + this.id = id; + this.name = name; + this.maxWaggons = maxWaggons; + } + + public int getMaxWaggons() { + return maxWaggons; + } + + @Override + public String toString() { + return "<" + id + ", " + name + ", " + getLaenge() + ">"; + } +} diff --git a/2025_Praxis_der_Programmierung/Main.java b/2025_Praxis_der_Programmierung/Main.java new file mode 100644 index 0000000..982e69b --- /dev/null +++ b/2025_Praxis_der_Programmierung/Main.java @@ -0,0 +1,47 @@ +import figure.Square; +import figure.Circle; + +public class Main { + public static void main(String[] args) { + Square square = new Square(0, 0, 10); + System.out.println(square.getSize()); + square.setSize(20); + System.out.println(square.getSize()); + System.out.println(square.getArea()); + System.out.println(square.getPerimeter()); + System.out.println(square.getPos()); + square.moveTo(1, 1); + System.out.println(square.getPos()); + square.moveBy(1, 1); + System.out.println(square.getPos()); + + Circle circle = new Circle(0, 0, 10); + System.out.println(circle.getSize()); + circle.setSize(20); + System.out.println(circle.getSize()); + System.out.println(circle.getArea()); + System.out.println(circle.getPerimeter()); + System.out.println(circle.getPos()); + circle.moveTo(1, 1); + System.out.println(circle.getPos()); + circle.moveBy(1, 1); + System.out.println(circle.getPos()); + + // ue10 + System.out.println("\nue10\n"); + + Square square1 = new Square(1, 2, 3); + + square1.show(); + System.out.println(square1); + + Square square2 = new Square(square1); + square2.show(); + System.out.println(square2); + square2.moveTo(99, 99); + square2.setSize(42); + + square1.show(); + square2.show(); + } +} diff --git a/2025_Praxis_der_Programmierung/Mueslischale.java b/2025_Praxis_der_Programmierung/Mueslischale.java new file mode 100644 index 0000000..8e4361d --- /dev/null +++ b/2025_Praxis_der_Programmierung/Mueslischale.java @@ -0,0 +1,5 @@ +public class Mueslischale extends Geschirr{ + public Mueslischale(int durchmesser, int hoehe, int gewicht, char function){ + super(durchmesser, hoehe, gewicht, char function); + } +} diff --git a/2025_Praxis_der_Programmierung/Node.java b/2025_Praxis_der_Programmierung/Node.java new file mode 100644 index 0000000..dcd536f --- /dev/null +++ b/2025_Praxis_der_Programmierung/Node.java @@ -0,0 +1,143 @@ +/* + * Name: Joaquin Gottlebe + * Matrikelnummer: 829101 + */ + +import java.util.List; +import java.util.Queue; +import java.util.ArrayList; +import java.util.LinkedList; +import java.util.HashSet; +import java.util.Set; + +/** + * A graph node that can store a tag, info, + * and connections to neighboring nodes. + */ +public class Node implements Taggable { + + // Private member variables + private T tag; + private I info; + private List> neighbors; + + // Constructor + public Node(T tag, I info) { + this.tag = tag; + this.info = info; + this.neighbors = new ArrayList<>(); + } + + // Set tag. + @Override + public void setTag(T tag) { + this.tag = tag; + } + + // Get tag. + public T getTag() { + return tag; + } + + // Get info. + public I getInfo() { + return info; + } + + // Set info. + public void setInfo(I info) { + this.info = info; + } + + // Get neighbors. + public List> getNeighbors() { + return neighbors; + } + + // Connects this node to another node. + public void connect(Node other) { + if (!neighbors.contains(other)) { + neighbors.add(other); + other.connect(this); + } + } + + // Disconnects this node from another node. + public void disconnect(Node other) { + if (neighbors.contains(other)) { + neighbors.remove(other); + other.disconnect(this); + } + } + + // Breadth-first traversal of the network starting from this node. Returns nodes + // in a list. + public List> traverse() { + List> visitedOrder = new ArrayList<>(); + Set> visited = new HashSet<>(); + Queue> queue = new LinkedList<>(); + + queue.add(this); + visited.add(this); + + while (!queue.isEmpty()) { + Node current = queue.poll(); + visitedOrder.add(current); + + for (Node neighbor : current.getNeighbors()) { + if (!visited.contains(neighbor)) { + queue.add(neighbor); + visited.add(neighbor); + } + } + } + + return visitedOrder; + } + + // Prints this nodes tag and info. + public void printNode() { + System.out.println("Node: " + tag + ", Info: " + info); + System.out.println(); + } + + // Prints neighbours of this node. + public void printNeighbors() { + System.out.print("Neighbors of " + tag + ": "); + if (neighbors.isEmpty()) { + System.out.println("no neighbors\n"); + } else { + for (Node neighbor : neighbors) { + System.out.print(neighbor.getTag() + " "); + } + System.out.println('\n'); + } + + } + + // Uses traverse() to print the network of this node. Avoids edge duplications. + public void printNetwork() { + List> networkNodes = traverse(); + Set printedEdges = new HashSet<>(); + + for (Node node : networkNodes) { + for (Node neighbor : node.getNeighbors()) { + + // Canonicalize edge to avoid duplicates + String canonicalEdge = node.getTag().toString().compareTo(neighbor.getTag().toString()) <= 0 + ? node.getTag().toString() + "-" + neighbor.getTag().toString() + : neighbor.getTag().toString() + "-" + node.getTag().toString(); + + if (!printedEdges.contains(canonicalEdge)) { + System.out.println( + node.getTag().toString() + node.getInfo().toString() + + " - " + + neighbor.getTag().toString() + neighbor.getInfo().toString()); + printedEdges.add(canonicalEdge); + } + + } + } + System.out.println(); + } +} diff --git a/2025_Praxis_der_Programmierung/Pair.java b/2025_Praxis_der_Programmierung/Pair.java new file mode 100644 index 0000000..313ec0b --- /dev/null +++ b/2025_Praxis_der_Programmierung/Pair.java @@ -0,0 +1,32 @@ +public class Pair { + + private X first; + private Y second; + + public Pair(X first, Y second) { + this.first = first; + this.second = second; + } + + public X getFirst() { + return first; + } + + public void setFirst(X first) { + this.first = first; + } + + public Y getSecond() { + return second; + } + + public void setSecond(Y second) { + this.second = second; + } + + @Override + public String toString() { + return "(" + first + ", " + second + ")"; + } + +} diff --git a/2025_Praxis_der_Programmierung/PairComparable.java b/2025_Praxis_der_Programmierung/PairComparable.java new file mode 100644 index 0000000..ea13473 --- /dev/null +++ b/2025_Praxis_der_Programmierung/PairComparable.java @@ -0,0 +1,41 @@ +public class PairComparable, Y extends Number> + implements Comparable> { + + private X first; + private Y second; + + public PairComparable(X first, Y second) { + this.first = first; + this.second = second; + } + + public X getFirst() { + return first; + } + + public void setFirst(X first) { + this.first = first; + } + + public Y getSecond() { + return second; + } + + public void setSecond(Y second) { + this.second = second; + } + + @Override + public int compareTo(PairComparable other) { + double thisFraction = this.first.doubleValue() / this.second.doubleValue(); + double otherFraction = other.first.doubleValue() / other.second.doubleValue(); + + return Double.compare(thisFraction, otherFraction); + } + + @Override + public String toString() { + return "(" + first + ", " + second + ")"; + } + +} diff --git a/2025_Praxis_der_Programmierung/PairComparableTest.java b/2025_Praxis_der_Programmierung/PairComparableTest.java new file mode 100644 index 0000000..3b41dbf --- /dev/null +++ b/2025_Praxis_der_Programmierung/PairComparableTest.java @@ -0,0 +1,24 @@ +import java.util.ArrayList; +import java.util.Collections; + +public class PairComparableTest { + public static void main(String[] args) { + ArrayList> pairs = new ArrayList<>(); + pairs.add(new PairComparable<>(5, 100)); + pairs.add(new PairComparable<>(2, 50)); + pairs.add(new PairComparable<>(8, 200)); + pairs.add(new PairComparable<>(3, 75)); + + System.out.println("Vor dem Sortieren:"); + for (PairComparable pair : pairs) { + System.out.println(pair); + } + + Collections.sort(pairs); + + System.out.println("\nNach dem Sortieren (nach erstem Element):"); + for (PairComparable pair : pairs) { + System.out.println(pair); + } + } +} diff --git a/2025_Praxis_der_Programmierung/PairTest.java b/2025_Praxis_der_Programmierung/PairTest.java new file mode 100644 index 0000000..63a4bdf --- /dev/null +++ b/2025_Praxis_der_Programmierung/PairTest.java @@ -0,0 +1,6 @@ +public class PairTest { + public static void main(String[] args) { + Pair intPair = new Pair<>(10, 20); + System.out.println(intPair); + } +} diff --git a/2025_Praxis_der_Programmierung/Point.java b/2025_Praxis_der_Programmierung/Point.java new file mode 100644 index 0000000..41f5fda --- /dev/null +++ b/2025_Praxis_der_Programmierung/Point.java @@ -0,0 +1,37 @@ +package figure; + +public class Point { + private int x; + private int y; + + public Point() { + } + + public Point(int x, int y) { + this.x = x; + this.y = y; + } + + public int getX() { + return x; + } + + public int getY() { + return y; + } + + public void moveTo(int x, int y) { + this.x = x; + this.y = y; + } + + public void moveBy(int x, int y) { + this.x += x; + this.y += y; + } + + public String toString() { + return this.x + ", " + this.y; + } + +} diff --git a/2025_Praxis_der_Programmierung/Printmedia.java b/2025_Praxis_der_Programmierung/Printmedia.java new file mode 100644 index 0000000..019c16b --- /dev/null +++ b/2025_Praxis_der_Programmierung/Printmedia.java @@ -0,0 +1,27 @@ +public class Printmedia implements Readable { + + private int currentPage; + protected int maxPage; + + public Printmedia(int currentPage, int maxPage) { + this.currentPage = currentPage; + this.maxPage = maxPage; + } + + public int getCurrentPage() { + return currentPage; + } + + public int getMaxPage() { + return maxPage; + } + + @Override + public void read(int amount) { + if (currentPage + amount > maxPage) { + throw new RuntimeException( + "Cannot read because currentPage would exceed maxPage"); + } + currentPage += amount; + } +} diff --git a/2025_Praxis_der_Programmierung/Rational.java b/2025_Praxis_der_Programmierung/Rational.java new file mode 100644 index 0000000..9f04382 --- /dev/null +++ b/2025_Praxis_der_Programmierung/Rational.java @@ -0,0 +1,57 @@ +class Rational{ + + private int num; + private int denom; + + public Rational(){ + this.num = 0; + this.denom = 1; + } + + public Rational(int num){ + this.num = num; + this.denom = 1; + } + + public Rational(int num, int denom){ + this.num = num; + this.denom = denom; + } + + + public void reduce(){ + int gcd = Gcd.gcd(this.num, this.denom); + this.num = this.num / gcd; + this.denom = this.denom / gcd; + } + + public void extent(int extent){ + this.num = this.num * extent; + this.denom = this.denom * extent; + } + + public String toString(){ + return this.num + "/" + this.denom; + } + + public String toStringReduced(){ + reduce(); + return toString(); + } + + public Rational mult(Rational number){ + Rational r = new Rational(); + r.num = this.num * number.num; + r.denom = this.denom * number.denom; + r.reduce(); + return r; + } + + public static void main(String[] args){ + Rational rat = new Rational(12, 24); + System.out.println(rat.toString()); + System.out.println(rat.toStringReduced()); + rat.extent(12); + System.out.println(rat.toString()); + } +} diff --git a/2025_Praxis_der_Programmierung/Readable.java b/2025_Praxis_der_Programmierung/Readable.java new file mode 100644 index 0000000..307f19f --- /dev/null +++ b/2025_Praxis_der_Programmierung/Readable.java @@ -0,0 +1,3 @@ +public interface Readable { + public void read(int amount); +} diff --git a/2025_Praxis_der_Programmierung/SimpleOutputDemo.java b/2025_Praxis_der_Programmierung/SimpleOutputDemo.java new file mode 100644 index 0000000..cdf0daf --- /dev/null +++ b/2025_Praxis_der_Programmierung/SimpleOutputDemo.java @@ -0,0 +1,6 @@ +class SimpleOutputDemo{ + public static void main(String[] args){ + for(int i = 0; i < args.length; i++) + System.out.println(args[args.length - i - 1]); + } +} diff --git a/2025_Praxis_der_Programmierung/Square.java b/2025_Praxis_der_Programmierung/Square.java new file mode 100644 index 0000000..00d531c --- /dev/null +++ b/2025_Praxis_der_Programmierung/Square.java @@ -0,0 +1,55 @@ +package figure; + +public class Square extends Figure { + + private int edgeLength; + + public Square() { + super(0, 0); + this.edgeLength = 0; + } + + public Square(int edgeLength) { + super(0, 0); + this.edgeLength = edgeLength; + } + + public Square(int x, int y, int edgeLength) { + super(x, y); + this.edgeLength = edgeLength; + } + + public Square(Square other) { + String[] pos = other.getPos().split(","); + int x = Integer.parseInt(pos[0].trim()); + int y = Integer.parseInt(pos[1].trim()); + super.moveTo(x, y); + this.edgeLength = other.getSize(); + } + + @Override + public int getSize() { + return edgeLength; + } + + @Override + public void setSize(int edgeLength) { + this.edgeLength = edgeLength; + } + + @Override + public double getArea() { + return edgeLength * edgeLength; + } + + @Override + public double getPerimeter() { + return edgeLength * 4; + } + + public void show() { + System.out.println( + "Pos:" + this.getPos() + "edgeLength: " + this.getSize()); + } + +} diff --git a/2025_Praxis_der_Programmierung/Static.java b/2025_Praxis_der_Programmierung/Static.java new file mode 100644 index 0000000..345977c --- /dev/null +++ b/2025_Praxis_der_Programmierung/Static.java @@ -0,0 +1,55 @@ +/** Static.java + * + * Eine Klasse, die Effekte mit Klassenvariablen demonstriert. + */ + +class Static { + + int n; + static int snum; + + void increase() { + n++; + snum++; + } + + void output() { + System.out.println("n = " + n + ", snum = " +snum); + } + + static void set(int n) { + snum = n; + } + + + + + public static void main(String[] args) { + + Static ex1 = new Static(); + Static ex2 = new Static(); + + ex1.output(); + ex2.output(); + System.out.println(); + + ex1.increase(); + + ex1.output(); + ex2.output(); + + Static.set(5); // Aufruf statische Methode; alternativ: Static.set(5); + Static ex3 = new Static(); + + System.out.println(); + ex1.output(); + ex2.output(); + ex3.output(); + } +} + +// Static + + + + diff --git a/2025_Praxis_der_Programmierung/Taggable.java b/2025_Praxis_der_Programmierung/Taggable.java new file mode 100644 index 0000000..56b7730 --- /dev/null +++ b/2025_Praxis_der_Programmierung/Taggable.java @@ -0,0 +1,17 @@ +/* + * Name: Joaquin Gottlebe + * Matrikelnummer: 829101 + */ + +/** + * The Taggable interface defines a generic type T + * that allows objects to set and get a tag of type T. + * + * @param the type of the tag + */ +interface Taggable { + + void setTag(T tag); + + T getTag(); +} diff --git a/2025_Praxis_der_Programmierung/Test.java b/2025_Praxis_der_Programmierung/Test.java new file mode 100644 index 0000000..a42072d --- /dev/null +++ b/2025_Praxis_der_Programmierung/Test.java @@ -0,0 +1,60 @@ +/* + * Name: Joaquin Gottlebe + * Matrikelnummer: 829101 + */ + +import java.util.Arrays; +import java.util.List; + +// Test class to test Node and Taggable class +public class Test { + public static void main(String[] args) { + + // Create nodes with String tags and List info + Node> A = new Node<>("A", Arrays.asList(1, 2, 3)); + Node> B = new Node<>("B", Arrays.asList(4, 5, 6)); + Node> C = new Node<>("C", Arrays.asList(7, 8, 9)); + Node> D = new Node<>("D", Arrays.asList(10, 11, 12)); + Node> E = new Node<>("E", Arrays.asList(13, 14, 15)); + Node> F = new Node<>("F", Arrays.asList(16, 17, 18)); + Node> G = new Node<>("G", Arrays.asList(19, 20, 21)); + + // Print node + A.printNode(); + + // Build connections between nodes + A.connect(F); + A.connect(G); + G.connect(F); + G.connect(B); + F.connect(B); + F.connect(C); + C.connect(D); + D.connect(E); + + // Print neighbors + A.printNeighbors(); + + // Print network + System.out.println("Graph 1:"); + A.printNetwork(); + + // Change network + A.setTag("A2"); + B.setTag("B2"); + G.setTag("G2"); + A.setInfo(Arrays.asList(23, 24, 25)); + B.setInfo(Arrays.asList(5, 6)); + G.setInfo(Arrays.asList(19, 20, 21, 22)); + A.connect(B); + B.connect(D); + C.connect(E); + G.disconnect(F); + F.disconnect(C); + C.disconnect(D); + + // Print network + System.out.println("Graph 2:"); + A.printNetwork(); + } +} diff --git a/2025_Praxis_der_Programmierung/TreeSetExample.java b/2025_Praxis_der_Programmierung/TreeSetExample.java new file mode 100644 index 0000000..cb90d49 --- /dev/null +++ b/2025_Praxis_der_Programmierung/TreeSetExample.java @@ -0,0 +1,16 @@ +import java.util.TreeSet; + +public class TreeSetExample { + public static void main(String[] args) { + TreeSet baume = new TreeSet<>(); + + baume.add("Aal"); + baume.add("Tanne"); + baume.add("Birke"); + baume.add("Baum"); + + for (String baum : baume) { + System.out.println(baum); + } + } +} diff --git a/2025_Praxis_der_Programmierung/UseList.java b/2025_Praxis_der_Programmierung/UseList.java new file mode 100644 index 0000000..864778d --- /dev/null +++ b/2025_Praxis_der_Programmierung/UseList.java @@ -0,0 +1,34 @@ +import java.util.Scanner; + +public class UseList { + public static void main(String[] args) { + List list = new List<>(); + + list.insert(new ListElement<>(10)); + list.insert(new ListElement<>(20)); + list.insert(new ListElement<>(30)); + + list.show(); + + Scanner scanner = new Scanner(System.in); + System.out.print("Positive integer please: "); + + int number = scanner.nextInt(); + try: + list.insert(new ListElement<>(40), number); + catch: + + + System.out.println("Length: " + list.length()); + + list.delete(); + list.show(); + + System.out.println("Is empty? " + list.isEmpty()); + + list.delete(); + list.delete(); + list.show(); + System.out.println("Is empty? " + list.isEmpty()); + } +} diff --git a/2025_Praxis_der_Programmierung/UsePoint.java b/2025_Praxis_der_Programmierung/UsePoint.java new file mode 100644 index 0000000..3ff6342 --- /dev/null +++ b/2025_Praxis_der_Programmierung/UsePoint.java @@ -0,0 +1,33 @@ +/** + * UsePoint.java + * + * Ein Programm, das Objekte der Klasse Point erzeugt und manipuliert. + */ + +class UsePoint { + + public static void main(String[] args) { + + // Erzeugen von zwei Exemplaren des Typs Point mit den Namen p und q; + // p soll an den Koordinaten (30,10) erzeugt werden, + // q mit dem parameterlosen Konstruktor am Koordinatenursprung. + + Point p = new Point(30,10); + Point q = new Point(); + + // Verschieben von q auf die Koordinaten (40,40) + + q.moveTo(40,20); + + // Ausgabe der Attribute von p und q + System.out.println(); + System.out.println(" x-Koordinate von p: " + p.getX()); + System.out.println(" y-Koordinate von p: " + p.getY()); + System.out.println(); + System.out.println(" x-Koordinate von q: " + q.getX()); + System.out.println(" y-Koordinate von q: " + q.getY()); + System.out.println(); + } +} + +// UsePoint diff --git a/2025_Praxis_der_Programmierung/UseRational.java b/2025_Praxis_der_Programmierung/UseRational.java new file mode 100644 index 0000000..e6f30ac --- /dev/null +++ b/2025_Praxis_der_Programmierung/UseRational.java @@ -0,0 +1,37 @@ +// UseRational.java.1-3 (Version .1-3) + +import java.util.Scanner; + +class UseRational { + + public static void main(String[] args) { + + // Definitionen + Scanner scanner = new Scanner(System.in); + Rational r; + + // Dialog + System.out.println(); + System.out.print("Geben Sie den Zaehler ein: "); + int a = scanner.nextInt(); + System.out.print("Geben Sie den Nenner ein: "); + int b = scanner.nextInt(); + System.out.println(); + + // Rational-Objekt erzeugen + r = new Rational(a,b); + + // Methodenaufrufe + System.out.println(r.toString()); // Bruch ausgeben + System.out.println(r.toStringReduced()); + r.extent(12); + System.out.println(r.toString()); + + Rational rMult = new Rational(2,3); + Rational r2 = r.mult(rMult); + System.out.println(r2.toString()); + } +} + +// UseRational + diff --git a/2025_Praxis_der_Programmierung/VariablenAusgabe.java b/2025_Praxis_der_Programmierung/VariablenAusgabe.java new file mode 100644 index 0000000..604b96a --- /dev/null +++ b/2025_Praxis_der_Programmierung/VariablenAusgabe.java @@ -0,0 +1,48 @@ +/** VariablenAusgabe.java + * + * Ein Programm, das die Vereinbarung sowie + * die Ausgabe von Variablen einfacher Datentypen + * demonstriert. + */ + + +class VariablenAusgabe { + + public static void main (String[] args) { + + int num1 = 12; + int num2 = -4; + + System.out.println(num1); + System.out.println(num2); + System.out.println(); + + System.out.println(5); + System.out.println(5 + num2); + System.out.println(); + + System.out.print(5); + System.out.println(num2); + + System.out.println(num1 + " " + num2); + + System.out.println("Wert von num1: " + num1); + + String string = "Hello World!"; + string = string.concat(" From Joaquin."); + string = string.replace('e', 'a'); + string = string.toLowerCase(); + string = string.toUpperCase(); + System.out.println(string); + + String[] split = string.split("! ", 2); + System.out.println(split[0]); + System.out.println(split[1]); + + + boolean stringsAreEqual = split[0].equals(split[1]); + System.out.println(stringsAreEqual); + } +} + +// VariablenAusgabe diff --git a/2025_Praxis_der_Programmierung/Verweise.java b/2025_Praxis_der_Programmierung/Verweise.java new file mode 100644 index 0000000..558de94 --- /dev/null +++ b/2025_Praxis_der_Programmierung/Verweise.java @@ -0,0 +1,65 @@ +/** + * Verweise.java + * + * Ein Programm, das die Funktionsweise von Verweisen demonstriert. + */ + +class Verweise { + + public static void main(String[] args) { + + // Definitionen + Point p1, p2; + + // Initialisieren + + p1 = null; + p2 = new Point(); + + System.out.println(); + System.out.println("Die Werte der Referenzvariablen sind:"); + System.out.println(); + System.out.println(" p1 = " + p1); + System.out.println(" p2 = " + p2); + System.out.println(); + + // Das kann zur Zeit nicht gut gehen: + // System.out.println(" p1 = (" + p1.x + "," + p1.y + ")"); + + // Erzeugen von p1 und Verschieben von p2 + + p1 = new Point(); + p2.moveTo(2, 3); + + System.out.println(); + System.out.println("Klassen sind Referenz-Datentypen:"); + System.out.println(); + System.out.println(" p1 = " + p1); + System.out.println(" p2 = " + p2); + System.out.println(); + + System.out.println(" p1 = (" + p1.x + "," + p1.y + ")"); + System.out.println(" p2 = (" + p2.x + "," + p2.y + ")"); + System.out.println(); + + System.out.println("Jetzt wird p2 = p1 gesetzt."); + System.out.println(); + + p2 = p1; + + System.out.println(" p1 = " + p1); + System.out.println(" p2 = " + p2); + System.out.println(); + + System.out.println("Nach dem Verschieben von p1 nach (4,5):"); + + p1.moveTo(4, 5); + + System.out.println(); + System.out.println(" p1 = (" + p1.x + "," + p1.y + ")"); + System.out.println(" p2 = (" + p2.x + "," + p2.y + ")"); + System.out.println(); + } +} + +// Verweise diff --git a/2025_Praxis_der_Programmierung/Vorlage.java b/2025_Praxis_der_Programmierung/Vorlage.java new file mode 100644 index 0000000..e72572a --- /dev/null +++ b/2025_Praxis_der_Programmierung/Vorlage.java @@ -0,0 +1,28 @@ + +/** + * Vorlage.java + * + * Programmfragment, das Tastatureingaben ermoeglicht + * + */ + +import java.util.Scanner; + +// Klassenname MUSS = Dateiname sein +class Vorlage { + + public static void main(String[] args) { + + // Boilerplate Code - bitte erstmal einfach verwenden, Details folgen später + Scanner scanner = new Scanner(System.in); + String str = scanner.next(); + int i = scanner.nextInt(); + + // Methoden für weitere Datentypen existieren + // siehe API + + } + +} + +// Vorlage diff --git a/2025_Praxis_der_Programmierung/Wagen.java b/2025_Praxis_der_Programmierung/Wagen.java new file mode 100644 index 0000000..d1ad23f --- /dev/null +++ b/2025_Praxis_der_Programmierung/Wagen.java @@ -0,0 +1,17 @@ +public class Wagen extends Zugteil { + private int kapazitaet; + + public Wagen(int laenge, boolean status, int kapazitaet) { + super(laenge, status); + this.kapazitaet = kapazitaet; + } + + public int getCap() { + return kapazitaet; + } + + @Override + public String toString() { + return "[" + kapazitaet + ", " + getLaenge() + "]"; + } +} diff --git a/2025_Praxis_der_Programmierung/Zug.java b/2025_Praxis_der_Programmierung/Zug.java new file mode 100644 index 0000000..38b6884 --- /dev/null +++ b/2025_Praxis_der_Programmierung/Zug.java @@ -0,0 +1,125 @@ +import java.util.LinkedList; +import java.util.Collections; + +public class Zug { + private String name; + private LinkedList zugteile; + + public Zug(Lokomotive lok) { + zugteile = new LinkedList<>(); + zugteile.add(lok); + } + + public void addWagen(Wagen wagen) { + Zugteil firstteil = zugteile.getFirst(); + if (firstteil instanceof Lokomotive) { + + Lokomotive lok = (Lokomotive) firstteil; + if (lok.getMaxWaggons() > this.getNumberOfWaggons()) { + zugteile.add(wagen); + } else { + throw new IllegalStateException("max Wagen fuer lok erreicht."); + } + } + } + + public void addWagen(Wagen wagen, int i) { + + if (i <= 0) { + throw new IllegalArgumentException("Wagen dürfen nicht vor der Lokomotive eingefügt werden."); + } + zugteile.add(i, wagen); + } + + public void print() { + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < zugteile.size(); i++) { + sb.append(zugteile.get(i).toString()); + if (i < zugteile.size() - 1) { + sb.append(" - "); + } + } + System.out.println(sb.toString()); + } + + public int getNumberOfWaggons() { + int numWaggons = 0; + for (Zugteil zugteil : zugteile) { + if (zugteil instanceof Wagen) { + numWaggons++; + } + } + return numWaggons; + } + + public int getPassengers() { + int cap = 0; + for (Zugteil zugteil : zugteile) { + if (zugteil instanceof Wagen) { + Wagen wagen = (Wagen) zugteil; + cap += wagen.getCap(); + } + } + return cap; + } + + public int getLength() { + int laength = 0; + for (Zugteil zugteil : zugteile) { + laength += zugteil.getLaenge(); + } + return laength; + } + + public void changeLoc(Lokomotive lok) { + if (zugteile.getFirst() instanceof Lokomotive) { + zugteile.removeFirst(); + } + zugteile.addFirst(lok); + } + + public Wagen removeCar(int i) { + if (zugteile.get(i) instanceof Wagen) { + return (Wagen) zugteile.remove(i); + } + return null; + } + + public void relink(Zug other) { + if (this == other) { + throw new IllegalArgumentException("Ein Zug kann nicht an sich selbst angehängt werden."); + } + + LinkedList wagonsToMove = new LinkedList<>(); + for (int i = 1; i < other.zugteile.size(); i++) { + Zugteil zt = other.zugteile.get(i); + if (zt instanceof Wagen) { + wagonsToMove.add((Wagen) zt); + } + } + + for (Wagen w : wagonsToMove) { + other.zugteile.remove(w); + } + + for (Wagen w : wagonsToMove) { + this.addWagen(w); + } + } + + public void revert() { + if (zugteile.isEmpty() || zugteile.size() <= 1) { + return; + } + + Zugteil lok = zugteile.get(0); + + LinkedList wagons = new LinkedList<>(zugteile.subList(1, zugteile.size())); + java.util.Collections.reverse(wagons); + + zugteile.clear(); + zugteile.add(lok); + zugteile.addAll(wagons); + } + +} diff --git a/2025_Praxis_der_Programmierung/ZugTest.java b/2025_Praxis_der_Programmierung/ZugTest.java new file mode 100644 index 0000000..4a96578 --- /dev/null +++ b/2025_Praxis_der_Programmierung/ZugTest.java @@ -0,0 +1,42 @@ +public class ZugTest { + public static void main(String[] args) { + // 1. Lokomotive „Big Chief“ mit Typ-ID 5311 und Länge 23m + Lokomotive bigChief = new Lokomotive(23, true, 5311, "Big Chief", 10); // maxWaggons auf 10 gesetzt + + // 2. Zug „Santa Fe“ mit Lok „Big Chief“ + Zug santaFe = new Zug(bigChief); + + // 3. Drei Wagen an „Santa Fe“ anhängen + santaFe.addWagen(new Wagen(12, true, 50)); + santaFe.addWagen(new Wagen(15, true, 75)); + santaFe.addWagen(new Wagen(20, true, 100)); + + // 4. Lokomotive „Steel Horse“ mit Typ-ID 5409 und Länge 21m + Lokomotive steelHorse = new Lokomotive(21, true, 5409, "Steel Horse", 10); + + // 5. Zug „Rio Grande Express“ mit Lok „Steel Horse“ + Zug rioGrandeExpress = new Zug(steelHorse); + + // 6. Zwei Wagen an „Rio Grande Express“ anhängen + rioGrandeExpress.addWagen(new Wagen(13, true, 60)); + rioGrandeExpress.addWagen(new Wagen(18, true, 80)); + + // Ausgabe vor dem Übertragen der Wagen + System.out.println("Vor dem Übertragen:"); + System.out.print("Santa Fe: "); + santaFe.print(); + System.out.print("Rio Grande Express: "); + rioGrandeExpress.print(); + + // 7. Alle Wagen von „Santa Fe“ zu „Rio Grande Express“ übergeben + rioGrandeExpress.relink(santaFe); + + // Ausgabe nach dem Übertragen + System.out.println("\nNach dem Übertragen:"); + System.out.print("Santa Fe: "); + santaFe.print(); + System.out.print("Rio Grande Express: "); + rioGrandeExpress.print(); + + } +} diff --git a/2025_Praxis_der_Programmierung/Zugteil.java b/2025_Praxis_der_Programmierung/Zugteil.java new file mode 100644 index 0000000..a17301b --- /dev/null +++ b/2025_Praxis_der_Programmierung/Zugteil.java @@ -0,0 +1,13 @@ +public class Zugteil { + private int laenge; + private boolean status; + + public Zugteil(int laenge, boolean status) { + this.laenge = laenge; + this.status = status; + } + + public int getLaenge() { + return laenge; + } +} diff --git a/2025_Praxis_der_Programmierung/array_1.c b/2025_Praxis_der_Programmierung/array_1.c new file mode 100644 index 0000000..8337f3a --- /dev/null +++ b/2025_Praxis_der_Programmierung/array_1.c @@ -0,0 +1,38 @@ +#include + +int main() +{ + + int i; + int ar[4]; + ar[0] = 10; + ar[1] = 20; + ar[2] = 30; + ar[3] = 40; + int arLen = (int)sizeof(ar) / sizeof(int); + + printf("\nar: %p\t &ar[0]: %p", ar, &ar[0]); + + printf("\n\nElemente von ar, indiziert:\n"); + for (i = 0; i < arLen; i++){ + printf("%d\t", ar[i]); + } + + printf("\n\nAdressen:\n"); + for (i = 0; i < arLen; i++){ + printf("%p\t", &ar[i]); + } + + printf("\n\nElemente von ar, referenziert:\n"); + for (i = 0; i < arLen; i++){ + printf("%d\t", *(ar + i)); + } + + printf("\n\nAdressen:\n"); + for (i = 0; i < arLen; i++){ + printf("%p\t", ar + i); + } + + printf("\n\n"); + return 0; +} diff --git a/2025_Praxis_der_Programmierung/array_2.c b/2025_Praxis_der_Programmierung/array_2.c new file mode 100644 index 0000000..7b73ea2 --- /dev/null +++ b/2025_Praxis_der_Programmierung/array_2.c @@ -0,0 +1,39 @@ +#include + +int main() +{ + + int i; + int ar[5]; + ar[0] = 10; + ar[1] = 20; + ar[2] = 30; + ar[3] = 40; + + int arLen = (int)sizeof(ar) / sizeof(int) + 2; + + printf("\nar: %p \t &ar[0]: %p\n", ar, &ar[0]); + + printf("\n\nElemente von ar, indiziert:\n"); + for (int i = 0; i < arLen; i++){ + printf("%d\t", ar[i]); + } + + printf("\n\nAdressen:\n"); + for (int i = 0; i < arLen; i++){ + printf("%p\t", &ar[i]); + } + + printf("\n\nElemente von ar, referenziert:\n"); + for (int i = 0; i < (sizeof(ar)/sizeof(int)) + 2; i++){ + printf("%d\t", *(ar + i)); + } + + printf("\n\nAdressen:\n"); + for (int i = 0; i < (sizeof(ar)/sizeof(int)) + 2; i++){ + printf("%p\t", ar+i); + } + + printf("\n\n"); + return 0; +} diff --git a/2025_Praxis_der_Programmierung/array_linked_list.c b/2025_Praxis_der_Programmierung/array_linked_list.c new file mode 100644 index 0000000..6d625bb --- /dev/null +++ b/2025_Praxis_der_Programmierung/array_linked_list.c @@ -0,0 +1,258 @@ +/* + * Name: Joaquin Gottlebe + * Matrikelnummer: 829101 + */ + +// Import dependencies +#include +#include +#include + +// Defines Constants +#define N 5 + +// Defines structs +struct le { + int value[N]; + struct le *next; +}; + +// Defines type definitions +typedef struct le listelement; +typedef listelement *list; + +// Defines functions +void insert(int ar[], list *l); +void delete_all(list *l); +void print_list(list l); +int compare(int ar[], list l, int pos); +int insertBehind(int new[], list *l, int ar[]); +list reverse(list l); + +// Implement functions + +// Takes an array and a list +// Inserts array as a new element in the list +// Returns void +void insert(int ar[], list *l) { + listelement *new; + new = malloc(sizeof(listelement)); + memcpy(new->value, ar, sizeof(int) * N); + new->next = *l; + *l = new; +} + +// Takes a list +// Frees the memory for the list +// Returns void +void delete_all(list *l) { + if (l == NULL) { + printf("List empty.\n"); + return; + } else { + + list next; + while (*l != NULL) { + next = (*l)->next; + free(*l); + *l = next; + } + } +} + +// Takes a list +// Prints it properly formatted +// Returns void +void print_list(list l) { + if (l == NULL) { + printf("List empty\n"); + return; + } else { + while (l != NULL) { + printf("["); + for (int i = 0; i < N; i++) { + printf("%d", l->value[i]); + if (i < N - 1) { + printf(","); + } + } + printf("]"); + if (l->next != NULL) + printf(","); + l = l->next; + } + } + printf("\n\n"); +} + +// Takes an array and a list and a position in the list +// Compares array with the array in the list at the given position +// If the arrays doesnt equal it returns the index where it first differs -1 if +// they are equal, returns -2 if pos is longer then the list or list is empty +int compare(int ar[], list l, int pos) { + if (l == NULL) { + printf("List empty.\n"); + return -2; + } else { + + int index = 0; + while (l != NULL) { + if (index == pos) { + for (int i = 0; i < N; i++) { + if (l->value[i] != ar[i]) // If arrays arent equal + return i; + } + return -1; // Success + } + l = l->next; + index++; + } + } + return -2; // pos is bigger then list or list is empty +} + +// Takes a new array and an array of a list and the list itself +// Inserts behind the lists array +// Returns 0 if successfull otherwise returns -1 +int insertBehind(int new[], list *l, int ar[]) { + if (l == NULL) { + printf("List empty.\n"); + return -1; + } else { + + int pos = 0; + for (list curr = *l; curr; curr = curr->next, pos++) { + if (compare(ar, *l, pos) == -1) { + listelement *new_elem = malloc(sizeof(*new_elem)); + if (!new_elem) { + perror("malloc"); + exit(1); + } + memcpy(new_elem->value, new, sizeof(int) * N); + new_elem->next = curr->next; + curr->next = new_elem; + return 0; // success + } + } + return -1; // array not in list + } +} + +// Takes a list +// Reverses the order of the elements and also the order of the order inside the +// elements. Returns a reversed list +list reverse(list l) { + + list new_list = NULL; + if (l == NULL) { + printf("List empty.\n"); + } else { + + while (l != NULL) { + int reversed[N]; + for (int i = 0; i < N; i++) { + reversed[i] = l->value[N - 1 - i]; + } + insert(reversed, &new_list); + l = l->next; + } + } + return new_list; +} + +// Takes int array +// Prints it +// Returns void +void print_array(int ar[]) { + printf("["); + for (int i = 0; i < N; i++) { + if (i == N - 1) { + printf("%d", ar[i]); + } else { + printf("%d, ", ar[i]); + } + } + printf("]"); +} + +// Takes void +// Main function +// Returns 0 if successfull +int main(void) { + + // Initialising lists + list testList = NULL; + list emptyList = NULL; + + // Initialising arrays + int arr1[N] = {1, 2, 3, 4, 5}; + int arr2[N] = {6, 7, 8, 9, 10}; + int arr3[N] = {11, 12, 13, 14, 15}; + int arrCompare[N] = {6, 7, 8, 9, 10}; + int arrNew[N] = {100, 101, 102, 103, 104}; + int arrNotInList[N] = {90, 91, 92, 93, 94}; + + // Insert arrays into lists + insert(arr1, &testList); + insert(arr2, &testList); + insert(arr3, &testList); + + // Print after insert + printf("\nInserted three arrays into testList: "); + print_list(testList); + + // Compare testList at position 1 with arrCompare and print result + int pos = 1; + int compareResult = compare(arrCompare, testList, pos); + printf("Compare array "); + print_array(arrCompare); + printf(" at position %d of testList: %d\n\n", pos, compareResult); + + // Insert new array into list behind arr2 and print new list + int insertResult1 = insertBehind(arrNew, &testList, arr2); + if (insertResult1 == 0) { + printf("Inserted "); + print_array(arrNew); + printf(" behind "); + print_array(arr2); + printf(" of testList.\n"); + printf("testList after insertBehind: "); + print_list(testList); + } else { + print_array(arrNew); + printf(" not found in testList\n\n"); + } + + // Insert arrNotInList into testList behind + int insertResult2 = insertBehind(arrNew, &testList, arrNotInList); + if (insertResult2 == 0) { + printf("Inserted "); + print_array(arrNotInList); + printf(" behind "); + print_array(arr2); + printf(" of testList.\n"); + printf("testList after insertBehind: "); + print_list(testList); + } else { + print_array(arrNotInList); + printf(" not found in testList\n\n"); + } + + // Print reversed testList + list reversedList = reverse(testList); + printf("reversedList of testList:"); + print_list(reversedList); + + // Test functions with empty list + print_list(emptyList); + compare(arrCompare, emptyList, 1); + insertBehind(arrNew, &emptyList, arr2); + reverse(emptyList); + + // Free memory + delete_all(&testList); + delete_all(&reversedList); + delete_all(&emptyList); + + return 0; +} diff --git a/2025_Praxis_der_Programmierung/char_array.c b/2025_Praxis_der_Programmierung/char_array.c new file mode 100644 index 0000000..7a6c230 --- /dev/null +++ b/2025_Praxis_der_Programmierung/char_array.c @@ -0,0 +1,37 @@ +/* char_array.c + * + * Entscheidung, ob eine Zeichenkette ein 'a' enthaelt + */ + +#include +#include +#define MAX 40 + +int main() { + int index; + char eingabe [MAX]; + + printf("Bitte String eingeben (max. %d Zeichen): ", MAX-1); + fgets(eingabe, MAX, stdin); + + size_t eingabeLen = strlen(eingabe); + for (int i = 0; i < eingabeLen; i++) + { + if (eingabe[i] == 'a'){ + printf("Position von 'a': %d\n", i); + } else { + printf("Der String enthält kein ’a’.\n"); + return 0; + } + } + + printf("\nEingabe: %s", eingabe); + + for (index = 0; eingabe[index] != '\0'; index++) + if (eingabe[index] == 'a') + break; + + + return 0; +} + diff --git a/2025_Praxis_der_Programmierung/date.c b/2025_Praxis_der_Programmierung/date.c new file mode 100644 index 0000000..896da5d --- /dev/null +++ b/2025_Praxis_der_Programmierung/date.c @@ -0,0 +1,11 @@ +#include +#include "date.h" + +Date createDate(int year){ + Date date = {.day = 1, .month = 1, .year = year}; + return date; +} + +void printDate(Date date){ + printf("%d.%d.%d", date.day, date.month, date.year); +} diff --git a/2025_Praxis_der_Programmierung/date.h b/2025_Praxis_der_Programmierung/date.h new file mode 100644 index 0000000..58a8348 --- /dev/null +++ b/2025_Praxis_der_Programmierung/date.h @@ -0,0 +1,13 @@ +#ifndef DATE_H +#define DATE_H + +typedef struct{ + int day; + int month; + int year; +} Date; + +Date createDate(int year); +void printDate(Date date); + +#endif // DATE_H diff --git a/2025_Praxis_der_Programmierung/explode.c b/2025_Praxis_der_Programmierung/explode.c new file mode 100644 index 0000000..1a601d5 --- /dev/null +++ b/2025_Praxis_der_Programmierung/explode.c @@ -0,0 +1,12 @@ +#include + +unsigned long long explode(unsigned int m, unsigned short n){ + return m << n; +} + +int main(){ + unsigned int m = 3; + unsigned short n = 4; + unsigned long long x = explode(m, n); + printf("%llu\n", x); +} diff --git a/2025_Praxis_der_Programmierung/fahrenheit2celsius.c b/2025_Praxis_der_Programmierung/fahrenheit2celsius.c new file mode 100644 index 0000000..0bdc526 --- /dev/null +++ b/2025_Praxis_der_Programmierung/fahrenheit2celsius.c @@ -0,0 +1,19 @@ +#include + +int main(void){ + int celsius_round; + float celsius_exact; + int fahrenheit=0; + int max_fahrenheit = 300; + int steps = 20; + + printf("\n\nFahrenheit \t Celsius(exakt) \t Celsius(gerundet) \n"); + + while(fahrenheit <= max_fahrenheit){ + celsius_exact = (5.0/9.0) * (fahrenheit - 32.0); + printf("%i \t\t %f \t\t\t %i \n", fahrenheit, celsius_exact, (int)celsius_exact); + fahrenheit+=steps; + } + + return 0; +} diff --git a/2025_Praxis_der_Programmierung/fehler.c b/2025_Praxis_der_Programmierung/fehler.c new file mode 100644 index 0000000..9c89981 --- /dev/null +++ b/2025_Praxis_der_Programmierung/fehler.c @@ -0,0 +1,30 @@ +/* fehler.c + * + * Ein Programm, dass Compilerfehler, + * Laufzeitfehler und logische Fehler demonstriert. + */ + +#include + +int main() { + + int num1,num2; + num1 = 0; + num2 = 1; + + printf("Der Quotient der Variablen ist: "); + printf("%d\n", num1/num2); + printf("\n"); // Leerzeile + + printf("Jetzt werden die Variablenwerte vertauscht.\n"); + + // Dies muss korrigiert werden. (logischer Fehler!!!) + int temp = num1; + num1 = num2; + num2 = temp; + + printf("Der Quotient der Vaiablen ist nun: "); + printf("%d\n", num1/num2); + + return 0; +} \ No newline at end of file diff --git a/2025_Praxis_der_Programmierung/for1.c b/2025_Praxis_der_Programmierung/for1.c new file mode 100644 index 0000000..25b22c6 --- /dev/null +++ b/2025_Praxis_der_Programmierung/for1.c @@ -0,0 +1,25 @@ +#include + +int main(void){ + + printf("\n Die geraden Zahlen von 12 bis 0: "); + + for(int i = 12; i >= 0; i-=2){ + printf("%i, ",i); + } + + printf("\n Die ungeraden Zahlen von -1 bis -13: "); + + for(int i = -1; i >= -13; i-=2){ + printf("%i, ", i); + } + + printf("\n Die ersten 10 Quadratzahlen: "); + + for(int i = 0; i <= 9; i++){ + printf("%i, ", i*i); + } + + printf("\n"); + +} \ No newline at end of file diff --git a/2025_Praxis_der_Programmierung/formatelemente.c b/2025_Praxis_der_Programmierung/formatelemente.c new file mode 100644 index 0000000..0f2d8aa --- /dev/null +++ b/2025_Praxis_der_Programmierung/formatelemente.c @@ -0,0 +1,11 @@ +#include + +int main(){ + int i = 66; + double x = .000007; + double y = 123.45; + printf("\ni:\n%d \n%o \n%x \n %X\n", i, i, i, i); + printf("\nx:\n%f \n%e \n%E \n%g \n%G\n", x, x, x, x, x); + printf("\ny:\n%g \n%G\n\n", y, y); + return 0; +} \ No newline at end of file diff --git a/2025_Praxis_der_Programmierung/highscore.c b/2025_Praxis_der_Programmierung/highscore.c new file mode 100644 index 0000000..11d8f2e --- /dev/null +++ b/2025_Praxis_der_Programmierung/highscore.c @@ -0,0 +1,27 @@ +#include +#include "highscore.h" +#include "date.h" + +Highscore createHighscore(Date date, int value){ + Highscore highscore = { .date = date, .value = value}; + return highscore; +} + +void printHighscore(Highscore highscore){ + if (firstYear){ + printf("Scores ab: %d\n", firstYear); + } + printDate(highscore.date); + printf(": %d\n", highscore.value); +} + +#ifdef TEST_HIGHSCORE + +int main(){ + + Highscore highscore = createHighscore(createDate(1997),16); + printHighscore(highscore); + +} + +#endif diff --git a/2025_Praxis_der_Programmierung/highscore.h b/2025_Praxis_der_Programmierung/highscore.h new file mode 100644 index 0000000..61f5312 --- /dev/null +++ b/2025_Praxis_der_Programmierung/highscore.h @@ -0,0 +1,18 @@ +#ifndef HIGHSCORE_H +#define HIGHSCORE_H + +#include "date.h" + +int firstYear; + +typedef struct { + Date date; + int value; +} Highscore; + +Highscore createHighscore(Date date, int value); + +void printHighscore(Highscore highscore); + +#endif //HIGHSCORE_H + diff --git a/2025_Praxis_der_Programmierung/insertionsort.c b/2025_Praxis_der_Programmierung/insertionsort.c new file mode 100644 index 0000000..8b508b9 --- /dev/null +++ b/2025_Praxis_der_Programmierung/insertionsort.c @@ -0,0 +1,64 @@ +#include + +#define seperator printf("-----------------------\n") + +void insertionSort(int arr[], int len){ + int i, val, pos; + for(i = 0; i < len; i++) { + val = arr[i]; + pos = i; + while((pos > 0) && (arr[pos - 1] > val)){ + arr[pos] = arr[pos - 1]; + pos = pos - 1; + } + if (pos != i) + arr[pos] = val; + } +} + +void prettyprint(int arr[],int len){ + int i; + if (len == 0){ + printf("leer\n"); + return; + } + for(i=0;i + +int main() { + double pi = 3.14159265359; + int r; + + printf("Geben Sie den Radius ein: "); + scanf("%d", &r); + + double f = pi * r * r; + double u = 2 * pi * r; + + printf("Für einen Kreis mit Radius %d gilt:\n", (short)r); + printf("Fläche: %f\n", f); + printf("Umfang: %f\n", u); + + return 0; + +} diff --git a/2025_Praxis_der_Programmierung/pkub.c b/2025_Praxis_der_Programmierung/pkub.c new file mode 100644 index 0000000..52e4e74 --- /dev/null +++ b/2025_Praxis_der_Programmierung/pkub.c @@ -0,0 +1,7 @@ +#include +#include + +int main(int argc, char **argv){ + int number = atoi(argv[1]); + printf("My number: %d\n", number); +} diff --git a/2025_Praxis_der_Programmierung/point_1.c b/2025_Praxis_der_Programmierung/point_1.c new file mode 100644 index 0000000..e27fc1f --- /dev/null +++ b/2025_Praxis_der_Programmierung/point_1.c @@ -0,0 +1,27 @@ +#include + +struct point { + float x; + float y; +}; + +int main() { + struct point p1, p2; + struct point * ptr; + + ptr = &p1; + + p1.x = 3; + ptr->y = 4; + + printf("\nx-Koordinate von p1: %f", ptr->x); + printf("\ny-Koordinate von p1: %f", (*ptr).y); + + p2 = p1; + + printf("\nx-Koordinate von p2: %f", p2.x); + printf("\ny-Koordinate von p2: %f", (&p2)->y); + + printf("\n\n"); + return 0; +} diff --git a/2025_Praxis_der_Programmierung/point_2.c b/2025_Praxis_der_Programmierung/point_2.c new file mode 100644 index 0000000..e8ef0a8 --- /dev/null +++ b/2025_Praxis_der_Programmierung/point_2.c @@ -0,0 +1,40 @@ +#include + +typedef struct { + float x; + float y; +} Point; + +void movePoint(Point *p1, Point p2){ + p1->x = p2.x; + p1->y = p2.y; +} + +int main() { + Point p1, p2; + Point * ptr; + ptr = &p1; + + p1.x = 3; + ptr->y = 4; + + printf("\nx-Koordinate von p1: %f", ptr->x); + printf("\ny-Koordinate von p1: %f", (*ptr).y); + + p2 = p1; + + printf("\nx-Koordinate von p2: %f", p2.x); + printf("\ny-Koordinate von p2: %f", (&p2)->y); + + Point p3; + p3.x = 10; + p3.y = 20; + + movePoint(&p1, p3); + + printf("\nx-Koordinate von p1: %f", p1.x); + printf("\nx-Koordinate von p1: %f", p1.y); + + printf("\n\n"); + return 0; +} diff --git a/2025_Praxis_der_Programmierung/point_3.c b/2025_Praxis_der_Programmierung/point_3.c new file mode 100644 index 0000000..b461c4c --- /dev/null +++ b/2025_Praxis_der_Programmierung/point_3.c @@ -0,0 +1,41 @@ +#include +#include + +struct point { + float x; + float y; +}; + + +void move(struct point * punkt, float dx, float dy) { + punkt->x += dx; + punkt->y += dy; +} + + +int main() { + struct point * ptr; + + ptr = malloc(sizeof(struct point)); // impl. Typcast des Pointers + + if (ptr != NULL) { + ptr->x = 10; + ptr->y = 20; + + printf("\nx-Koordinate von p: %f", ptr->x); + printf("\ny-Koordinate von p: %f", ptr->y); + + free(ptr); + + printf("\n"); + printf("\nnach free():"); + + // Dangling Pointer! + printf("\nx-Koordinate von p: %f", ptr->x); + printf("\ny-Koordinate von p: %f", ptr->y); + + printf("\n\n"); + } + return 0; +} + diff --git a/2025_Praxis_der_Programmierung/poly.c b/2025_Praxis_der_Programmierung/poly.c new file mode 100644 index 0000000..4f7d98d --- /dev/null +++ b/2025_Praxis_der_Programmierung/poly.c @@ -0,0 +1,136 @@ +#include +#include +#include + +typedef struct { + float x; + float y; +}Point; + +typedef struct Listelement Listelement; + +struct Listelement { + Point pnt; + Listelement *next; +}; + +typedef struct { + char* name; + Listelement *first; +} Polygon; + +void append(Polygon * pz, Point pnt) { + Listelement * new = malloc(sizeof(Listelement)); + + if (!new) { + perror("Malloc failed."); + exit(1); + } + + new->pnt = pnt; + new->next = NULL; + + if (pz->first == NULL){ + pz->first = new; + } else { + Listelement * tmp = pz->first; + + while (tmp->next != NULL) { + tmp = tmp->next; + } + + tmp->next = new; + } +} + +void polyPrint(Polygon *pz){ + if (pz == NULL || pz->first == NULL){ + printf("Kein Polygon."); + return; + } + + printf("%s\n",pz->name); + + Listelement *le = pz->first; + while(le != NULL){ + printf("(%f, %f)\n", le->pnt.x, le->pnt.y); + le = le->next; + } +} + +void shorten(Polygon *pz){ + if (pz == NULL || pz->first == NULL){ + printf("Kein Polygon."); + } + + Listelement *le = pz->first; + while(le->next->next != NULL){ + le = le->next; + } + free(le->next); + le->next = NULL; +} + +Polygon mirror(Polygon *pz){ + + Polygon newPZ; + newPZ.first = NULL; + + if (pz == NULL || pz->first == NULL){ + newPZ.name = NULL; + printf("Kein Polygon."); + return newPZ; + } + + const char *prefix = "Copy of "; + size_t newNameLen = strlen(prefix) + strlen(pz->name) + 1; + char *newName = malloc(newNameLen); + if (!newName) { + perror("Malloc failed"); + exit(1); + } + strcpy(newName, prefix); + strcat(newName, pz->name); + newPZ.name = newName; + + Listelement *le = pz->first; + while (le != NULL) { + Listelement *newElem = malloc(sizeof(Listelement)); + if (!newElem) { + perror("Malloc failed"); + exit(1); + } + newElem->pnt = le->pnt; + + newElem->next = newPZ.first; + newPZ.first = newElem; + + le = le->next; + } + + return newPZ; +} + +int main() { + Point pnt = (Point){.x = 10, .y = 20}; + Point pnt2 = (Point){.x = 20, .y = 30}; + Listelement first = {.pnt = pnt, .next = NULL}; + Polygon pz; + pz.name = "Mein Polygon"; + pz.first = &first; + append(&pz, pnt2); + polyPrint(&pz); + shorten(&pz); + polyPrint(&pz); + append(&pz, (Point){.x = 30, .y = 40}); + append(&pz, (Point){.x = 50, .y = 40}); + append(&pz, (Point){.x = 60, .y = 40}); + append(&pz, (Point){.x = 70, .y = 40}); + + polyPrint(&pz); + Polygon pzMirror = mirror(&pz); + polyPrint(&pzMirror); + + + return 0; +} diff --git a/2025_Praxis_der_Programmierung/printf.c b/2025_Praxis_der_Programmierung/printf.c new file mode 100644 index 0000000..52bdc64 --- /dev/null +++ b/2025_Praxis_der_Programmierung/printf.c @@ -0,0 +1,6 @@ +#include + +int main(void){ + printf("\nIch kenne die Formatelemente zu 100 %%.\n"); + return 0; +} \ No newline at end of file diff --git a/2025_Praxis_der_Programmierung/pt1.c b/2025_Praxis_der_Programmierung/pt1.c new file mode 100644 index 0000000..b19efb4 --- /dev/null +++ b/2025_Praxis_der_Programmierung/pt1.c @@ -0,0 +1,15 @@ +#include + +int main(){ + int i; + int *ptr; + ptr = &i; + i = 1; + printf("%i\n", *ptr); + printf("%p\n", ptr); + printf("%i\n", i); + *ptr = 2; + printf("%i\n", i); +} + + diff --git a/2025_Praxis_der_Programmierung/quotient.c b/2025_Praxis_der_Programmierung/quotient.c new file mode 100644 index 0000000..27f4e7b --- /dev/null +++ b/2025_Praxis_der_Programmierung/quotient.c @@ -0,0 +1,39 @@ +#include +#include + +int y; + +int func(int a, int b){ + if (b == 0){ + return -1; + } + else { + return (2 * (a * a)) / b; + } +} + +int main (void){ + + int x = 4; + + printf("Geben Sie eine ganze Zahl ein: "); + scanf("%i", &y); + + int result = func(x,y); + + if(result == -1){ + printf("Ein Fehler ist aufgetreten.\n"); + } else { + printf("Berechneter Wert: %i\n", result); + } + + for(int i = 0; i <= 30; i++){ + y = i; + result = func(x,y); + if(result == -1){ + printf("Ein Fehler ist aufgetreten.\n"); + } else { + printf("x: %i, y: %i, z: %i\n", x,y, result); + } + } +} diff --git a/2025_Praxis_der_Programmierung/rec_count.c b/2025_Praxis_der_Programmierung/rec_count.c new file mode 100644 index 0000000..5aaee6d --- /dev/null +++ b/2025_Praxis_der_Programmierung/rec_count.c @@ -0,0 +1,26 @@ +#include + +void decr(int n); +void rec_out(int n); + +void decr(int n) +{ + rec_out(--n); +} + +void rec_out(int n) +{ + static int count = 1; + printf("Die %d. Ausgabe.\n", count); + count++; + if (n > 1) + { + decr(n); + } +} + +int main() +{ + rec_out(6); + return 0; +} diff --git a/2025_Praxis_der_Programmierung/schleifen.c b/2025_Praxis_der_Programmierung/schleifen.c new file mode 100644 index 0000000..b22078f --- /dev/null +++ b/2025_Praxis_der_Programmierung/schleifen.c @@ -0,0 +1,38 @@ +#include + +int main() { + int i; + printf("\n"); + + + // 12, 10, ... , 0 + for(i = 12; i >= 0; i = i - 2) { + printf("%d", i); + if (i > 0) + printf(", "); + } + printf("\n\n"); + + + // -1, -3, ..., -13 + i = -1; + while (i > -14) { + printf("%d", i); + if (i > -13) + printf(", "); + i = i-2; + } + printf("\n\n"); + + + // Quadratzahlen 0 ... 81 + do { + printf("%d", i*i); + if (i < 9) + printf(", "); + i++; // Inkrementiere i + } while(i<=9); + printf("\n\n"); + + return 0; +} diff --git a/2025_Praxis_der_Programmierung/scores.c b/2025_Praxis_der_Programmierung/scores.c new file mode 100644 index 0000000..ecc2055 --- /dev/null +++ b/2025_Praxis_der_Programmierung/scores.c @@ -0,0 +1,7 @@ +#include "highscore.h" + +int main(){ + firstYear = 1997; + Highscore score = createHighscore(createDate(1997), 69); + printHighscore(score); +} diff --git a/2025_Praxis_der_Programmierung/sqr_array_1.c b/2025_Praxis_der_Programmierung/sqr_array_1.c new file mode 100644 index 0000000..56cd8f3 --- /dev/null +++ b/2025_Praxis_der_Programmierung/sqr_array_1.c @@ -0,0 +1,19 @@ +#include +#define NL printf("\n"); +#define ARROWS 3 +#define ARCOLUMNS 4 +int main() +{ + int ar[ARROWS][ARCOLUMNS] = { + {0, 1, 2, 3}, + {10, 11, 12}, + {0} + }; + + for (int i = 0; i < ARROWS; i++){ + for (int j = 0; j < ARCOLUMNS; j++){ + printf("%d\t", ar[i][j]); + } + NL + } +} diff --git a/2025_Praxis_der_Programmierung/sqr_array_2.c b/2025_Praxis_der_Programmierung/sqr_array_2.c new file mode 100644 index 0000000..218ad3d --- /dev/null +++ b/2025_Praxis_der_Programmierung/sqr_array_2.c @@ -0,0 +1,39 @@ +#include +#define NL printf("\n"); +#define LENGTH 10 + + +void writing_squarenumbers_array(int *array, int size){ + printf("Writing square numbers to Array..."); + for (int i = 0; i < size; i++){ + array[i] = i * i; + } + NL +} + + +void print_array(int *array, int size){ + printf("Printing Array: "); + for (int i = 0; i < size; i++) + { + printf("%d ", array[i]); + } + NL +} + + +void print_array_rev(int *array, int size){ + printf("Printing Array (reversed): "); + for (int i = 0; i < size; i++){ + printf("%d ", array[size - 1 - i]); + } + NL +} + + +int main(){ + int array[LENGTH]; + writing_squarenumbers_array(array, LENGTH); + print_array(array, LENGTH); + print_array_rev(array, LENGTH); +} \ No newline at end of file diff --git a/2025_Praxis_der_Programmierung/sqr_array_3.c b/2025_Praxis_der_Programmierung/sqr_array_3.c new file mode 100644 index 0000000..ec640f5 --- /dev/null +++ b/2025_Praxis_der_Programmierung/sqr_array_3.c @@ -0,0 +1,44 @@ +#include +#define NL printf("\n"); +#define LENGTH 1000 + +void writing_squarenumbers_array(int *array, int size){ + printf("Writing square numbers to Array..."); + for (int i = 0; i < size; i++){ + array[i] = i * i; + } + NL +} + +int main(){ + int array[LENGTH]; + int input; + writing_squarenumbers_array(array, LENGTH); + + while(1){ + printf("Geben Sie eine Zahl ein zwischen 1 und %d: \n", LENGTH); + int result = scanf("%d", &input); + + if (result != 1){ + printf("Ungültige Eingabe. Bitte geben Sie eine ganze Zahl ein.\n"); + while (getchar() != '\n'); // Eingabepuffer leeren + continue; + } + + if (input == 0) { + printf("Programm beendet.\n"); + break; + } + + if (input < 1 || input > 1000) { + printf("Fehler: Zahl außerhalb des gültigen Bereichs!\n"); + continue; + } + + printf("Deine Quadratzahl ist: %d\n", array[input]); + break; + } + + return 0; + +} \ No newline at end of file diff --git a/2025_Praxis_der_Programmierung/strings.c b/2025_Praxis_der_Programmierung/strings.c new file mode 100644 index 0000000..1346cc7 --- /dev/null +++ b/2025_Praxis_der_Programmierung/strings.c @@ -0,0 +1,33 @@ +#include +#include +#include + +int main(){ + + // Static string + char statS[50] = "Hallo PdP!"; + + // Dynamic string + char *dynS = malloc(11); + strcpy(dynS, "Hallo PdP!"); + + // Print + printf("Static string [1]: %c \n", statS[1]); + printf("Dynamic string [1]: %c \n", dynS[1]); + + // Neuzuweisung + statS[1] = 'e'; + dynS[1] = 'e'; + + // Print + printf("Static string [1]: %c \n", statS[1]); + printf("Dynamic string [1]: %c \n", dynS[1]); + + // Neuzuweisung 2 + strcpy(statS,"neuer String"); + dynS = "neuer String"; + + // Print + printf("Static string: %s \n", statS); + printf("Dynamic string: %s \n", dynS); +} \ No newline at end of file diff --git a/2025_Praxis_der_Programmierung/swap.c b/2025_Praxis_der_Programmierung/swap.c new file mode 100644 index 0000000..53b0af0 --- /dev/null +++ b/2025_Praxis_der_Programmierung/swap.c @@ -0,0 +1,16 @@ +#include + +void swap(int* value1, int* value2){ + int buffer = *value1; + *value1 = *value2; + *value2 = buffer; +} + +int main(){ + int x = 4; + int y = 5; + printf("x:%i y:%i\n", x, y); + swap(&x, &y); + printf("swap!\n"); + printf("x:%i y:%i\n", x, y); +} \ No newline at end of file diff --git a/2025_Praxis_der_Programmierung/table.c b/2025_Praxis_der_Programmierung/table.c new file mode 100644 index 0000000..3402ef9 --- /dev/null +++ b/2025_Praxis_der_Programmierung/table.c @@ -0,0 +1,20 @@ +#include +#include + +#define NL printf("\n"); + +int main(void){ + + int ar[3][4] = { + {0, 1, 2, 3}, + {10, 11, 12} + }; + + for(int i = 0; i < sizeof(ar)/sizeof(ar[0]);i++){ + for(int j = 0; j < sizeof(ar[0])/sizeof(int);j++){ + printf("%i\t", ar[i][j]); + } + NL + } + +} \ No newline at end of file diff --git a/2025_Praxis_der_Programmierung/typengroesse.c b/2025_Praxis_der_Programmierung/typengroesse.c new file mode 100644 index 0000000..edb0b19 --- /dev/null +++ b/2025_Praxis_der_Programmierung/typengroesse.c @@ -0,0 +1,37 @@ +/* typengroesse.c + * + * Bestimmung der Groesse der einfachen typen mit sizeof + */ + + #include + + int main() { + char c = 127; + unsigned char uc = 255; + + printf("\n"); + + printf("char: \t\t\t%2d\n", (int) sizeof c); + printf("unsigned char: \t\t%2d\n", (int) sizeof uc); + + printf("short: \t\t\t%2d\n", (int) sizeof(short)); + printf("unsigned short: \t%2d\n", (int) sizeof(unsigned short)); + printf("int: \t\t\t%2d\n", (int) sizeof(int)); + printf("unsigned int: \t\t%2d\n", (int) sizeof(unsigned int)); + + printf("long: \t\t\t%2d\n", (int) sizeof(long)); + printf("unsigned long: \t\t%2d\n", (int) sizeof(unsigned long)); + printf("long long: \t\t%2d\n", (int) sizeof(long long)); + printf("unsigned long long: \t%2d\n", (int) sizeof(unsigned long long)); + + printf("float: \t\t\t%2d\n", (int) sizeof(float)); + printf("double: \t\t%2d\n", (int) sizeof(double)); + printf("long double: \t\t%2d\n", (int) sizeof(long double)); + + printf("_Bool: \t\t\t%2d\n", (int) sizeof(_Bool)); // C99-Boolescher Typ + + printf("\n"); + + return 0; + } + \ No newline at end of file diff --git a/2025_Praxis_der_Programmierung/typfehler.c b/2025_Praxis_der_Programmierung/typfehler.c new file mode 100644 index 0000000..0899414 --- /dev/null +++ b/2025_Praxis_der_Programmierung/typfehler.c @@ -0,0 +1,25 @@ +#include +#include + +int main() { + float n; + int rvalue; + int c; + + while(1){ + printf("Geben Sie eine Zahl ein: "); + rvalue = scanf("%f", &n); + if (rvalue == 1){ + break; + } else { + printf("Fehler: Bitte geben Sie eine gueltige Zahl ein.\n"); + if (rvalue == 0) { + do { + c = getchar(); + } while (c != '\n'); + } + } + } + printf("Die Zahl ist %f\n", n); + return 0; +} diff --git a/2025_Praxis_der_Programmierung/while1.c b/2025_Praxis_der_Programmierung/while1.c new file mode 100644 index 0000000..69824ca --- /dev/null +++ b/2025_Praxis_der_Programmierung/while1.c @@ -0,0 +1,29 @@ +#include + +int main(void){ + + printf("\n Die geraden Zahlen von 12 bis 0: "); + + int i = 12; + while(i>=0){ + printf("%i, ",i); + i-=2; + } + + printf("\n Die ungeraden Zahlen von -1 bis -13: "); + + i = -1; + while(i>=-13){ + printf("%i, ", i); + i-=2; + } + + printf("\n Die ersten 10 Quadratzahlen: "); + + i = 0; + do{ + printf("%i, ", i*i); + i++; + } while(i<=9); + +} \ No newline at end of file diff --git a/2025_Praxis_der_Programmierung/zeichenketten.c b/2025_Praxis_der_Programmierung/zeichenketten.c new file mode 100644 index 0000000..ef7b577 --- /dev/null +++ b/2025_Praxis_der_Programmierung/zeichenketten.c @@ -0,0 +1,39 @@ +#include +#include +#define STRING_LENGHT 50 + +int main(){ + + char s1[STRING_LENGHT]; + char s2[STRING_LENGHT]; + + printf("Bitte geben Sie einen Vornamen ein: \n"); + scanf("%49s", s1); + + printf("Bitte geben Sie einen Nachnamen ein: \n"); + scanf("%49s", s2); + + if (strcmp(s1, s2)) + { + printf("Vor- und Nachname sind verschieden\n"); + } + else + { + printf("Vor- und Nachname sind gleich.\n"); + } + + for (int i = 0; s2[i] != '\0'; i++){ + if (s2[i] >= 'a' && s2[i] <= 'z'){ + s2[i] = s2[i] - ('a'-'A'); + } + } + + char name[STRING_LENGHT * 2]; + strcat(name, s1); + strcat(name, " "); + strcat(name, s2); + + int name_laenge = (int)(strlen(s1) + strlen(s2)); + printf("name: %s, Laenge: %i\n", name, name_laenge); + +} diff --git a/2025_Research_Software_Engineering_1/.gitignore b/2025_Research_Software_Engineering_1/.gitignore new file mode 100644 index 0000000..4f27cb5 --- /dev/null +++ b/2025_Research_Software_Engineering_1/.gitignore @@ -0,0 +1,3 @@ +__pycache__ +.ipynb_checkpoints/ +venv/ \ No newline at end of file diff --git a/2025_Research_Software_Engineering_1/LICENSE b/2025_Research_Software_Engineering_1/LICENSE new file mode 100644 index 0000000..dfb5d6b --- /dev/null +++ b/2025_Research_Software_Engineering_1/LICENSE @@ -0,0 +1,14 @@ +Copyright (C) 2025 Joaquin Gottlebe + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . diff --git a/2025_Research_Software_Engineering_1/README.md b/2025_Research_Software_Engineering_1/README.md new file mode 100644 index 0000000..d162dbf --- /dev/null +++ b/2025_Research_Software_Engineering_1/README.md @@ -0,0 +1,119 @@ +# Exploratory Data Analysis on Employment in Germany (1999–2024) + +**Version:** v1.0 + +**Description:** +This notebook presents an exploratory data analysis of employment trends in Germany from 1999 to 2024. Using official data from the German Federal Statistical Office (Destatis), we investigate key patterns in employment over time, with a focus on overall employment trends, the distribution between employment types (employees vs. self-employed), sectoral developments, and structural shifts between economic sectors. The objective is to uncover long-term transformations in the German labor market and highlight significant historical developments. + +## 1. Overview + +- **Purpose:** This project includes a Jupyter Notebook and a Python script for exploratory data analysis on employment in Germany. +- **Research context:** Developed as coursework for the "Research Software Engineering" module. +- **Notable features:** Analysis includes sectoral comparisons, employment type trends, and structural economic transitions over 25 years. +- **Date of creation:** 14.04.2025 + +## 2. Project Structure + +- **Main folders:** + - `data/` – Contains raw and processed datasets (.csv) + - `docs/` – Project markdown description + - `src/` – Python scripts and notebooks (.py, .ipynb) + +- **File formats used:** `.py`, `.ipynb`, `.md`, `.csv`, `.txt` +- **Project size:** ~230 MB + +## 3. Installation + +### Prerequisites +- Python 3.13.3 +- Packages listed in `requirements.txt` + +### Clone the repository + +With SSH (Needs SSH key setup): + +With HTTPS: + +```bash +git clone https://gitup.uni-potsdam.de/gottlebe/eda-employment-germany.git +``` + +With SSH (Needs SSH key setup): + +```bash +git clone git@gitup.uni-potsdam.de:gottlebe/eda-employment-germany.git +``` + +### Change directory + +```bash +cd eda-employment-germany +``` +### Environment setup (Optional) + +The virtual environment is optional but recommended to avoid package conflicts. + +For Linux/MacOS: + +```bash +python3 -m venv venv +source venv/bin/activate +``` + +For Windows: + +```bash +python -m venv venv +venv\Scripts\activate +``` + +### Instructions + +```bash +pip install -r requirements.txt +``` + +## 4. Usage + +- Open the Jupyter notebook and run all cells to reproduce the analysis: + +```bash +jupyter notebook src/notebook.ipynb +``` + +## 5. Data + +- **Source:** The Genesis portal of the German Federal Statistical Office (Destatis). +- **Content:** Employment data by year, economic sector, and employment type. +- **Format:** CSV files with well-structured tabular data. +- **Preprocessing:** Minor formatting and cleanup included in the script. + +## 6. Reproducibility + +- Environment can be replicated using `requirements.txt`. + +## 7. Contribution + +Contributions are welcome. Users can: +- Open issues +- Fork and create pull requests + +## 8. License + +This project is licensed under the GNU General Public License v3.0. +You can view the full license text here: [https://www.gnu.org/licenses/gpl-3.0.en.html](https://www.gnu.org/licenses/gpl-3.0.en.html) + +## 9. Citation + +No formal citation required for this project. + +## 10. Contact + +- **Name:** Joaquin Gottlebe +- **Institution:** University of Potsdam +- **Email:** joa.gottlebe@gmail.com + +## 11. Acknowledgments + +- Data courtesy of the German Federal Statistical Office (Destatis) +- Project developed as part of the Research Software Engineering course at the University of Potsdam diff --git a/2025_Research_Software_Engineering_1/data/13311-0001_en_flat.csv b/2025_Research_Software_Engineering_1/data/13311-0001_en_flat.csv new file mode 100644 index 0000000..deee671 --- /dev/null +++ b/2025_Research_Software_Engineering_1/data/13311-0001_en_flat.csv @@ -0,0 +1,3163 @@ +statistics_code;statistics_label;time_code;time_label;time;1_variable_code;1_variable_label;1_variable_attribute_code;1_variable_attribute_label;2_variable_code;2_variable_label;2_variable_attribute_code;2_variable_attribute_label;value;value_unit;value_variable_code;value_variable_label;value_q +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;39246.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;4134.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;35112.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;6729.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;1029.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;5700.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;2403.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;508.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;1895.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;635.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;281.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;354.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;68.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;2.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;66.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;1217.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;147.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;1070.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;9691.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;1066.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;8625.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;9774.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;594.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;9180.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;2752.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;0.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;2752.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;11201.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;1118.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;10083.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;12090.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;942.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;11148.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;477.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;69.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;408.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;10265.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;1273.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;8992.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;10731.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;659.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;10072.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;13940.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;1134.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;12806.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;2694.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;0.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;2694.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;5916.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;487.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;5429.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;8107.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;273.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;7834.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;4928.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;752.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;4176.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;39322.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;4381.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;34941.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;2594.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;208.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;2386.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;734.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;423.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;311.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;836.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;0.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;836.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;3073.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;470.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;2603.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;2433.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;197.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;2236.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;1830.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;210.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;1620.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;30091.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;3364.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;26727.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;31299.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;3398.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;27901.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;7853.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;295.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;7558.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;1851.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;238.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;1613.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;2901.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;615.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;2286.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;4869.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;777.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;4092.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;3320.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;347.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;2973.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;...;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;...;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;...;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;2780.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;391.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;2389.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;27846.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;2859.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;24987.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;2611.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;234.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;2377.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;933.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;0.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;933.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;2956.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;475.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;2481.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;1504.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;290.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;1214.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;8067.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;302.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;7765.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;11441.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;990.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;10451.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;7479.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;242.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;7237.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;7769.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;311.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;7458.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;10709.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;665.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;10044.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;267.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;9.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;258.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;1277.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;142.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;1135.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;5397.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;864.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;4533.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;14988.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;1111.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;13877.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;468.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;61.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;407.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;2064.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;132.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;1932.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;653.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;341.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;312.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;8087.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;252.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;7835.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;7249.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;1100.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;6149.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;2266.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;468.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;1798.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;294.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;8.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;286.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;7512.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;263.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;7249.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;2305.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;479.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;1826.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;40903.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;4493.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;36410.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;2096.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;130.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;1966.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;9441.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;1137.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;8304.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;4879.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;433.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;4446.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;...;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;...;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;...;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;2945.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;596.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;2349.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;2656.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;228.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;2428.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;10140.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;640.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;9500.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;9358.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;1155.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;8203.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;45291.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;4146.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;41145.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;301.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;8.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;293.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;10156.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;319.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;9837.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;3117.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;236.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;2881.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;670.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;179.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;491.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;5879.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;476.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;5403.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;670.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;186.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;484.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;786.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;463.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;323.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;9830.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;1175.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;8655.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;1130.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;139.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;991.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;...;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;...;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;...;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;6200.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;842.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;5358.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;1104.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;131.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;973.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;8285.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;301.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;7984.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;2255.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;169.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;2086.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;5511.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;876.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;4635.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;4969.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;439.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;4530.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;778.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;454.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;324.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;26981.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;2831.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;24150.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;9078.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;447.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;8631.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;462.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;66.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;396.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;40281.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;4469.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;35812.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;7534.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;262.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;7272.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;2980.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;470.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;2510.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;11062.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;1136.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;9926.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;31622.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;3387.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;28235.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;1234.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;148.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;1086.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;1191.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;145.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;1046.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;7586.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;245.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;7341.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;7278.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;294.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;6984.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;11333.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;1079.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;10254.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;5899.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;502.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;5397.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;42378.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;4501.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;37877.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;854.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;0.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;854.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;265.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;9.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;256.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;1216.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;153.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;1063.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;9550.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;579.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;8971.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;2417.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;513.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;1904.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;...;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;...;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;...;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;...;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;...;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;...;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;5029.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;803.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;4226.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;10504.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;627.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;9877.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;38045.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;3915.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;34130.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;2370.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;498.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;1872.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;10426.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;1270.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;9156.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;914.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;0.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;914.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;640.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;293.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;347.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;2455.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;203.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;2252.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;10950.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;690.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;10260.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;1999.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;143.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;1856.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;1093.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;129.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;964.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;8184.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;269.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;7915.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;5252.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;765.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;4487.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;11470.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;705.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;10765.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;827.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;0.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;827.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;3255.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;324.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;2931.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;273.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;9.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;264.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;9999.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;777.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;9222.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;3086.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;529.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;2557.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;5918.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;455.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;5463.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;10493.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;661.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;9832.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;...;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;...;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;...;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;7498.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;236.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;7262.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;1298.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;136.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;1162.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;617.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;177.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;440.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;9596.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;1086.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;8510.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;8087.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;274.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;7813.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;9853.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;1153.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;8700.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;10318.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;788.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;9530.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;624.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;270.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;354.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;1083.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;92.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;991.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;2420.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;192.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;2228.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;3222.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;371.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;2851.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;944.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;0.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;944.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;44290.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;4293.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;39997.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;586.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;227.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;359.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;249.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;9.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;240.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;37865.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;3668.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;34197.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;9469.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;1119.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;8350.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;7176.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;1093.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;6083.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;464.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;68.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;396.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;9062.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;437.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;8625.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;1166.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;151.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;1015.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;7061.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;1084.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;5977.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;1628.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;214.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;1414.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;5860.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;607.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;5253.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;1266.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;150.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;1116.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;2439.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;604.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;1835.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;257.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;0.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;257.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;...;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;...;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;...;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;11806.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;696.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;11110.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;3197.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;249.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;2948.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;252.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;0.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;252.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;11534.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;701.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;10833.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;686.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;179.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;507.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;10294.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;649.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;9645.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;1890.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;227.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;1663.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;1204.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;145.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;1059.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;2652.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;0.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;2652.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;5927.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;571.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;5356.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;...;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;...;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;...;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;1075.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;126.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;949.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;9473.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;1107.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;8366.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;5221.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;844.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;4377.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;576.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;216.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;360.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;842.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;0.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;842.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;10146.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;786.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;9360.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;2786.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;399.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;2387.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;10796.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;684.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;10112.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;31023.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;3413.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;27610.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;685.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;167.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;518.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;14771.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;1117.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;13654.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;9835.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;1135.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;8700.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;12152.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;975.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;11177.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;44966.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;4039.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;40927.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;7772.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;1022.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;6750.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;3009.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;249.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;2760.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;11365.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;718.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;10647.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;5835.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;693.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;5142.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;8323.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;266.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;8057.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;3110.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;379.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;2731.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;3080.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;461.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;2619.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;11175.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;717.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;10458.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;13449.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;1136.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;12313.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;9425.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;574.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;8851.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;689.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;159.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;530.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;853.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;0.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;853.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;655.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;186.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;469.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;2491.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;204.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;2287.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;5815.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;684.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;5131.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;1085.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;127.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;958.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;45053.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;3952.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;41101.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;1807.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;256.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;1551.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;33597.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;3088.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;30509.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;46011.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;3848.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;42163.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;467.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;54.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;413.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;10121.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;786.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;9335.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;851.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;0.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;851.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;30691.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;3411.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;27280.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;266.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;9.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;257.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;2959.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;479.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;2480.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;7849.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;305.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;7544.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;5006.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;824.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;4182.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;14360.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;1119.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;13241.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;11511.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;1054.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;10457.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;572.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;217.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;355.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;9784.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;1013.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;8771.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;45675.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;3894.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;41781.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;608.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;255.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;353.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;10467.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;1275.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;9192.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;11465.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;651.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;10814.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;2578.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;0.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;2578.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;9193.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;1177.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;8016.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;1295.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;134.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;1161.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;4336.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;722.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;3614.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;285.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;9.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;276.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;15307.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;1078.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;14229.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;664.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;359.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;305.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;...;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;...;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;...;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;7438.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;272.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;7166.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;816.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;0.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;816.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;2699.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;199.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;2500.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;1203.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;151.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;1052.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;3016.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;467.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;2549.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;12226.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;995.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;11231.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;5921.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;521.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;5400.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;247.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;8.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;239.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;10145.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;1284.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;8861.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;29471.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;3324.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;26147.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;2559.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;478.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;2081.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;1648.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;286.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;1362.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;11157.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;718.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;10439.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;293.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;9.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;284.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;8117.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;246.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;7871.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;10494.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;786.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;9708.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;2728.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;193.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;2535.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;692.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;177.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;515.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;2388.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;188.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;2200.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;683.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;176.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;507.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;1669.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;285.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;1384.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;12124.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;674.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;11450.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;865.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;526.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;339.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;2964.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;548.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;2416.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;1182.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;143.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;1039.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;3884.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;598.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;3286.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;1252.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;146.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;1106.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;2837.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;415.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;2422.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;3823.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;570.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;3253.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;3114.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;308.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;2806.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;7481.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;265.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;7216.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;6263.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;758.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;5505.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;28125.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;2928.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;25197.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;7351.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;1100.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;6251.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;10091.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;765.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;9326.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;7603.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;258.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;7345.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;2772.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;384.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;2388.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;5089.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;445.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;4644.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;24169.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;2352.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;21817.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;7840.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;298.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;7542.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;...;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;...;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;...;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;10723.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;666.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;10057.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;10040.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;787.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;9253.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;13858.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;594.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;13264.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;7731.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;255.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;7476.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;642.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;307.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;335.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;3183.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;231.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;2952.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;2950.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;449.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;2501.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;663.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;186.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;477.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;5703.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;805.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;4898.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;4316.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;663.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;3653.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;1692.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;283.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;1409.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;39125.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;3991.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;35134.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;9376.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;1192.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;8184.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;8408.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;311.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;8097.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;10247.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;892.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;9355.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;773.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;447.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;326.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;10667.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;756.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;9911.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;262.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;0.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;262.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;5858.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;703.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;5155.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;38500.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;3963.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;34537.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;12023.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;888.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;11135.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;472.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;54.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;418.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;703.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;387.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;316.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;2954.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;247.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;2707.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;474.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;69.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;405.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;2809.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;0.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;2809.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;6696.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;1049.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;5647.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;10360.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;1302.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;9058.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;2734.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;637.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;2097.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;1226.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;155.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;1071.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;8036.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;319.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;7717.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;2216.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;125.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;2091.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;2197.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;162.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;2035.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;1482.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;289.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;1193.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;9810.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;1269.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;8541.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;11850.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;831.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;11019.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;6574.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;1005.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;5569.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;7142.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;289.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;6853.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;9806.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;1209.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;8597.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;67.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;2.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;65.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;2429.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;425.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;2004.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;1782.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;264.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;1518.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;9009.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;328.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;8681.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;304.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;8.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;296.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;765.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;436.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;329.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;6083.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;779.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;5304.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;1503.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;293.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;1210.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;1869.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;232.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;1637.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;7602.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;1073.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;6529.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;...;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;...;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;...;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;9253.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;527.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;8726.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;624.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;185.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;439.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;34643.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;2947.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;31696.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;494.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;53.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;441.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;2636.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;0.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;2636.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;7858.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;293.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;7565.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;659.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;352.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;307.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;46.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;2.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;44.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;9216.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;462.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;8754.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;11577.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;926.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;10651.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;7746.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;303.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;7443.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;8020.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;283.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;7737.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;1088.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;127.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;961.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;10396.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;1319.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;9077.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;5576.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;770.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;4806.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;40851.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;4479.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;36372.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;5696.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;895.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;4801.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;253.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;0.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;253.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;25725.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;2751.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;22974.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;2867.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;433.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;2434.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;1189.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;149.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;1040.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;7368.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;300.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;7068.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;3304.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;251.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;3053.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;249.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;9.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;240.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;32506.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;3327.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;29179.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;465.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;65.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;400.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;964.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;0.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;964.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;9913.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;617.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;9296.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;2395.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;590.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;1805.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;6270.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;445.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;5825.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;2564.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;0.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;2564.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;6019.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;442.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;5577.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;607.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;171.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;436.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;10496.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;727.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;9769.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;1261.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;158.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;1103.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;7840.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;940.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;6900.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;2449.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;490.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;1959.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;5876.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;621.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;5255.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;12883.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;1079.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;11804.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;10066.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;310.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;9756.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;10393.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;795.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;9598.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;9910.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;819.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;9091.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;7513.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;231.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;7282.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;10951.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;1179.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;9772.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;43137.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;4414.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;38723.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;1175.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;665.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;510.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;39865.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;4028.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;35837.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;10220.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;587.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;9633.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;38873.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;3563.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;35310.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;5976.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;560.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;5416.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;...;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;...;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;...;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;10933.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;733.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;10200.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;4652.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;725.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;3927.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;819.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;0.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;819.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;2492.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;620.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;1872.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;11101.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;661.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;10440.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;7954.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;309.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;7645.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;11353.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;762.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;10591.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;1523.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;127.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;1396.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;7457.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;298.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;7159.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;8190.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;256.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;7934.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;1742.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;221.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;1521.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;12588.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;632.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;11956.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;5496.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;464.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;5032.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;1566.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;125.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;1441.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;8224.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;320.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;7904.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;2268.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;123.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;2145.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;...;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;...;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;...;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;475.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;53.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;422.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;39370.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;4260.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;35110.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;2759.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;0.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;2759.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;2548.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;423.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;2125.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;7841.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;307.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;7534.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;9830.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;1286.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;8544.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;1453.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;295.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;1158.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;629.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;188.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;441.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;39674.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;4062.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;35612.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;679.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;376.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;303.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;2948.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;478.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;2470.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;251.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;0.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;251.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;9312.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;550.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;8762.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;42.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;2.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;40.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;1122.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;119.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;1003.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;2963.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;402.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;2561.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;2687.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;646.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;2041.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;10783.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;724.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;10059.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;5893.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;655.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;5238.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;7285.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;282.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;7003.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;12500.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;1028.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;11472.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;1196.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;146.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;1050.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;10882.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;1211.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;9671.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;9949.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;972.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;8977.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;2782.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;240.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;2542.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;460.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;61.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;399.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;9143.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;1154.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;7989.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;2373.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;575.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;1798.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;3255.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;246.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;3009.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;960.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;609.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;351.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;10556.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;763.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;9793.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;13156.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;613.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;12543.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;2393.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;101.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;2292.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;2741.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;0.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;2741.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;4023.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;642.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;3381.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;4159.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;650.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;3509.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;2412.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;100.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;2312.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;1459.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;289.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;1170.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;921.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;576.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;345.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;1287.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;147.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;1140.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;3076.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;469.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;2607.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;33423.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;3229.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;30194.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;...;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;...;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;...;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;1330.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;144.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;1186.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;10833.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;724.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;10109.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;4760.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;425.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;4335.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;37881.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;3746.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;34135.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;33015.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;3282.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;29733.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;2308.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;178.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;2130.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;25057.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;2597.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;22460.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;10769.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;1232.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;9537.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;10037.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;854.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;9183.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;55.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;2.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;53.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;272.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;0.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;272.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;645.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;335.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;310.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;5826.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;887.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;4939.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;457.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;63.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;394.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;7778.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;947.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;6831.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;7649.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;958.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;6691.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;1187.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;144.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;1043.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;5974.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;877.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;5097.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;1734.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;279.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;1455.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;7742.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;1069.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;6673.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;10703.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;708.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;9995.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;39976.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;4013.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;35963.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;11811.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;805.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;11006.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;651.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;329.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;322.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;59.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;2.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;57.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;2616.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;456.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;2160.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;9226.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;1170.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;8056.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;2298.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;174.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;2124.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;1763.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;272.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;1491.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;...;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;...;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;...;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;6052.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;799.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;5253.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;479.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;51.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;428.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;2735.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;0.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;2735.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;42756.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;4466.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;38290.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;2639.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;448.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;2191.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;38362.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;3608.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;34754.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;10547.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;1304.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;9243.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;34343.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;2984.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;31359.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;2888.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;276.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;2612.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;1474.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;291.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;1183.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;2935.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;563.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;2372.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;8460.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;319.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;8141.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;255.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;0.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;255.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;2531.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;206.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;2325.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;7733.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;309.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;7424.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;9971.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;1290.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;8681.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;...;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;...;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;...;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;3177.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;229.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;2948.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;33773.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;3025.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;30748.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;42.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;2.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;40.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;1506.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;282.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;1224.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;1139.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;106.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;1033.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;2954.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;472.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;2482.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;568.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;214.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;354.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;1451.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;294.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;1157.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;2954.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;481.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;2473.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;5320.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;457.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;4863.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;8023.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;308.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;7715.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;1291.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;134.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;1157.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;3010.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;386.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;2624.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;9359.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;562.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;8797.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;24317.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;2427.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;21890.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;43.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;2.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;41.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;74.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;2.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;72.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;1201.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;149.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;1052.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;6061.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;943.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;5118.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;1037.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;643.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;394.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;2383.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;103.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;2280.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;38062.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;3856.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;34206.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;12965.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;1109.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;11856.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;251.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;0.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;251.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;5757.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;847.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;4910.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;10645.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;1282.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;9363.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;1158.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;143.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;1015.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;11698.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;894.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;10804.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;43686.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;4360.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;39326.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;5875.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;630.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;5245.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;606.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;250.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;356.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;8584.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;325.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;8259.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;276.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;0.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;276.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;5873.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;667.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;5206.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;1473.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;291.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;1182.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;7794.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;1049.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;6745.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;1584.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;291.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;1293.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;1380.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;140.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;1240.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;5681.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;463.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;5218.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;13253.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;1126.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;12127.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;41099.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;4518.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;36581.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;3948.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;605.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;3343.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;28552.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;3240.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;25312.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;3017.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;465.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;2552.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;12015.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;651.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;11364.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;3983.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;625.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;3358.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;2483.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;487.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;1996.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;3314.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;250.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;3064.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;815.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;0.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;815.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;10631.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;1250.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;9381.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;502.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;56.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;446.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;...;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;...;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;...;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;8145.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;241.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;7904.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;28364.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;3137.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;25227.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;10515.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;774.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;9741.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;33759.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;3173.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;30586.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;6360.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;451.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;5909.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;11908.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;650.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;11258.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;8086.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;229.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;7857.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;7244.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;302.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;6942.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;24696.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;2518.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;22178.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;6140.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;876.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;5264.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;2554.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;0.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;2554.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;815.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;0.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;815.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;8477.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;306.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;8171.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;248.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;0.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;248.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;10046.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;932.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;9114.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;7618.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;977.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;6641.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;1254.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;162.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;1092.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;2561.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;631.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;1930.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;9317.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;311.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;9006.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;463.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;70.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;393.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;39608.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;4436.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;35172.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;2428.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;500.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;1928.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;1443.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;131.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;1312.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;10656.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;1262.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;9394.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;7274.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;297.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;6977.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;1134.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;132.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;1002.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;5914.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;893.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;5021.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;7435.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;220.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;7215.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;262.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;9.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;253.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;13099.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;1119.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;11980.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;253.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;9.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;244.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;6130.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;443.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;5687.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;8424.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;322.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;8102.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;9287.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;1164.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;8123.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;2372.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;117.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;2255.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;705.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;399.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;306.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;2587.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;0.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;2587.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;1223.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;157.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;1066.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;1137.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;99.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;1038.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;9330.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;1176.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;8154.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;10159.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;788.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;9371.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;10339.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;1322.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;9017.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;471.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;66.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;405.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;2950.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;245.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;2705.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;2623.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;436.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;2187.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;259.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;0.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;259.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;63.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;2.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;61.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;2849.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;0.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;2849.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;1173.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;146.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;1027.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;11996.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;853.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;11143.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;11371.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;713.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;10658.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;7840.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;317.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;7523.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;9791.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;1244.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;8547.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;2374.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;112.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;2262.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;243.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;0.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;243.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;6324.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;979.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;5345.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;5985.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;548.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;5437.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;2310.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;483.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;1827.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;6215.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;865.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;5350.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;10756.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;694.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;10062.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;10849.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;750.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;10099.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;6430.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;458.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;5972.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;8462.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;303.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;8159.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;1489.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;293.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;1196.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;5812.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;463.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;5349.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;2329.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;487.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;1842.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;4461.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;688.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;3773.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;481.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;52.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;429.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;10432.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;601.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;9831.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;2173.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;126.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;2047.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;31987.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;3359.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;28628.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;2777.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;628.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;2149.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;2888.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;412.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;2476.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;256.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;0.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;256.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;2965.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;459.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;2506.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;7821.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;312.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;7509.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;2749.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;368.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;2381.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;46082.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;3774.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;42308.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;10181.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;910.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;9271.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;7484.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;293.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;7191.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;11018.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;1161.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;9857.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;12264.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;652.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;11612.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;53.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;2.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;51.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;2344.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;183.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;2161.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;456.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;65.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;391.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;14538.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;1121.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;13417.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;3000.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;294.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;2706.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;457.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;64.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;393.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;10011.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;628.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;9383.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;7711.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;300.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;7411.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;...;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;...;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;...;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;...;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;...;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;...;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;10970.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;318.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;10652.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;3906.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;582.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;3324.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;48.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;2.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;46.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;3027.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;537.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;2490.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;1480.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;291.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;1189.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;2031.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;136.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;1895.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;3785.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;582.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;3203.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;28045.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;3008.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;25037.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;25446.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;2674.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;22772.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;810.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;486.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;324.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;10437.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;796.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;9641.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;2593.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;468.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;2125.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;11720.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;648.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;11072.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;293.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;9.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;284.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;2840.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;425.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;2415.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;2295.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;480.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;1815.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;1986.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;140.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;1846.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;12350.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;1015.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;11335.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;268.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;0.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;268.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;12861.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;1095.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;11766.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;2857.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;0.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;2857.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;15116.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;1096.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;14020.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;8064.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;276.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;7788.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;1472.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;288.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;1184.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;1989.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;138.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;1851.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;10459.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;1284.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;9175.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;5194.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;452.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;4742.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;8804.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;327.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;8477.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;2349.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;427.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;1922.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;1479.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;291.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;1188.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;1222.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;147.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;1075.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;3119.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;231.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;2888.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;4188.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;682.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;3506.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;1161.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;142.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;1019.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;11687.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;911.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;10776.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;28946.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;3293.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;25653.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;6900.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;1067.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;5833.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;889.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;0.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;889.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;2270.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;453.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;1817.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;61.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;2.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;59.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;649.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;319.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;330.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;2695.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;415.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;2280.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;9734.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;1032.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;8702.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;2651.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;443.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;2208.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;645.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;188.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;457.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;2336.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;118.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;2218.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;3101.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;445.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;2656.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;...;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;...;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;...;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;8374.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;255.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;8119.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;13703.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;1136.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;12567.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;1511.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;287.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;1224.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;11243.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;740.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;10503.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;716.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;410.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;306.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;41570.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;4531.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;37039.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;2905.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;244.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;2661.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;9840.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;989.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;8851.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;14118.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;1126.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;12992.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;1074.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;126.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;948.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;7773.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;244.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;7529.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;42065.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;4527.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;37538.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;3051.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;469.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;2582.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;11627.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;1032.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;10595.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;30414.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;3396.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;27018.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;478.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;51.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;427.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;663.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;366.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;297.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;1187.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;143.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;1044.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;7413.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;276.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;7137.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;10054.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;799.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;9255.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;7714.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;314.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;7400.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;2836.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;625.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;2211.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;2558.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;0.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;2558.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;2641.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;203.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;2438.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;468.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;57.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;411.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;7684.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;293.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;7391.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;4618.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;417.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;4201.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;705.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;180.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;525.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;1832.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;247.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;1585.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;23840.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;2304.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;21536.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;464.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;63.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;401.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;10924.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;667.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;10257.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;9929.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;607.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;9322.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;71.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;2.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;69.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;2126.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;128.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;1998.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;5657.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;781.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;4876.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;11584.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;782.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;10802.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;11284.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;650.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;10634.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;38046.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;3797.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;34249.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-H;Transportation and storage;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;287.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;0.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;287.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1994;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;5588.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;889.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;4699.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2002;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;2526.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;484.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;2042.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;806.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;0.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;806.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;44878.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;4229.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2018;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;;Total;40649.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-T;Private households;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;26252.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;2804.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;23448.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;...;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;...;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;...;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;7800.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;923.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;6877.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1992;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;2925.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;441.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;2484.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2000;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-Q;Human health and social work activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;461.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;69.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;392.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;10228.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;791.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2011;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;9437.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;10303.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;736.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-F;Industry;9567.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;1745.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;211.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;1534.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;7476.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;1087.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K-N;Financial, insurance, business, real estate act.;6389.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;599.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;240.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;359.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;76.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;2.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;74.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1999;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;9474.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;324.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;9150.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;1404.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;136.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2020;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;1268.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;9230.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;1168.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-I;Trade, transport., storage, accom.and food service;8062.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1997;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;9237.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;489.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-Q;Public services, education, health;8748.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;6210.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;768.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2022;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;5442.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;7165.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;299.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;6866.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;257.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;9.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-E;Water supply,sewerage,waste management,remediation;248.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;27974.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;2887.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2001;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;25087.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;29874.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;3339.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;26535.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;2959.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;477.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R-T;Arts,entertainm.,recreation,o.service act.,priv.h.;2482.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;1231.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;159.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2007;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-K;Financial and insurance activities;1072.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2004;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;2621.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;0.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2017;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O;Public admin. and defence, compulsory social sec.;2621.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;1448.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;286.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;1162.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;2634.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;642.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2013;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;1992.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;34805.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;2895.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2024;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-T;Service activities;31910.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;12739.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;1053.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-O-T;Public a.other services, education, health,priv.h.;11686.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1995;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;3092.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;250.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2015;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-N;Administrative and support service activities;2842.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;4599.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;751.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2006;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M-N;Business services;3848.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;464.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;70.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2009;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;394.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;665.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;174.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-R;Arts, entertainment and recreation;491.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;2571.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;208.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2019;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-P;Education;2363.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;1146.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;145.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2005;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-J;Information and communication;1001.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;5901.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;600.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2016;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G;Wholesale, retail trade, repair of motor vehicles;5301.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;1492.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;278.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2008;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-S;Other service activities;1214.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;8666.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;316.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;1993;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-C;Manufacturing;8350.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;249.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;0.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2010;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-D;Electricity, gas, steam, air conditioning supply;249.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;577.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;219.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-A;Agriculture, forestry and fishing;358.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;2003;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-I;Accommodation and food service activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;2430.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;510.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2014;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-F;Construction;1920.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1998;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-M;Professional, scientific and technical activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1991;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;7990.0;1000;ERW063;Persons in employment (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;287.0;1000;ERW062;Self-employed persons a. family workers (domestic);e +13311;Regional employment accounts;JAHR;Year;2012;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B-E;Industry, except construction;7703.0;1000;ERW061;Employees (domestic concept);e +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;11353.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;950.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2021;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-G-J;Trade,transport.,storage,accom.and food serv.,inf.;10403.0;1000;ERW061;Employees (domestic concept);p +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;.;1000;ERW063;Persons in employment (domestic concept); +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;.;1000;ERW062;Self-employed persons a. family workers (domestic); +13311;Regional employment accounts;JAHR;Year;1996;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-L;Real estate activities;.;1000;ERW061;Employees (domestic concept); +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;41.0;1000;ERW063;Persons in employment (domestic concept);p +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;2.0;1000;ERW062;Self-employed persons a. family workers (domestic);p +13311;Regional employment accounts;JAHR;Year;2023;DINSG;Germany;DG;Germany;WZ08R1;WZ2008 (Sections, aggregations): Regional accounts;WZ08-B;Mining and quarrying;39.0;1000;ERW061;Employees (domestic concept);p diff --git a/2025_Research_Software_Engineering_1/docs/description.md b/2025_Research_Software_Engineering_1/docs/description.md new file mode 100644 index 0000000..d5addeb --- /dev/null +++ b/2025_Research_Software_Engineering_1/docs/description.md @@ -0,0 +1,58 @@ +*Exploratory data analysis on employment in Germany* + +The dataset 13311-0001 of the Statistischen Bundesamts (Destatis) +was choosen as the dataset of this project. It was choosen because the author is currently +searching for employment and is therefore interested in insights into structures and trends +of the employment market and regional distribution. The dataset differentiates between +work-sektors and between Self-employed, employed and domestic employed. +The dataset has a temporal scope from 1991 to 2024, so 33 years. + +Link: https://www-genesis.destatis.de/datenbank/online/statistic/13311/table/13311-0001 + +## Question 1: Which working sectors in Germany had the most and the fewest employees over the years? + +**Answer**: +A **line plot** showing the number of employees per sector from 1999 to 2024 using total employment data. + +- **x-axis**: Year +- **y-axis**: Number of employees +- **Color**: One line per sector +- **Tools**: `pandas`, `matplotlib` +- **Function used**: `biggest_employment_sectors_timeline()` + +## Question 2: Which sectors in Germany employed the most and the fewest domestic employees over the years? + +**Answer**: +Same line plot as Question 1, but filtered by **domestic concept** employment data. + +- **Data filtered with**: `etype='Employees (domestic concept)'` +- **Tools**: `get_df`, `line_plot_multiple_df` + +## Question 3: Which sectors had the most and the fewest self-employed individuals over the years? + +**Answer**: +Line plot using self-employment data across sectors from 1999 to 2024. + +- **Employment type**: `Self-employed persons a. family workers (domestic)` +- **Tools**: `get_df`, `line_plot_multiple_df` + +## Question 4: Which sectors grew or declined the most in employment over the years? + +**Answer**: +A **heatmap** (to be implemented) that visualizes change in employment per sector over time. + +- **x-axis**: Year +- **y-axis**: Sector +- **Color scale**: Number of employees (intensity = magnitude) +- **Tools**: `pandas`, `matplotlib` + +## Question 5: How did different employment types evolve over time? + +**Answer**: +A line plot comparing the number of employees vs. self-employed individuals from 1999 to 2024. + +- **x-axis**: Year +- **y-axis**: Number of employees +- **Lines**: One for each employment type +- **Function**: `employment_types_timeline()` +- **Tools**: `pandas`, `matplotlib` diff --git a/2025_Research_Software_Engineering_1/requirements.txt b/2025_Research_Software_Engineering_1/requirements.txt new file mode 100644 index 0000000..151701e --- /dev/null +++ b/2025_Research_Software_Engineering_1/requirements.txt @@ -0,0 +1,93 @@ +anyio==4.9.0 +appnope==0.1.4 +argon2-cffi==23.1.0 +argon2-cffi-bindings==21.2.0 +arrow==1.3.0 +asttokens==3.0.0 +async-lru==2.0.5 +attrs==25.3.0 +babel==2.17.0 +beautifulsoup4==4.13.4 +bleach==6.2.0 +certifi==2025.4.26 +cffi==1.17.1 +charset-normalizer==3.4.2 +comm==0.2.2 +debugpy==1.8.14 +decorator==5.2.1 +defusedxml==0.7.1 +executing==2.2.0 +fastjsonschema==2.21.1 +fqdn==1.5.1 +h11==0.16.0 +httpcore==1.0.9 +httpx==0.28.1 +idna==3.10 +ipykernel==6.29.5 +ipython==9.2.0 +ipython_pygments_lexers==1.1.1 +isoduration==20.11.0 +jedi==0.19.2 +Jinja2==3.1.6 +json5==0.12.0 +jsonpointer==3.0.0 +jsonschema==4.23.0 +jsonschema-specifications==2025.4.1 +jupyter-events==0.12.0 +jupyter-lsp==2.2.5 +jupyter_client==8.6.3 +jupyter_core==5.7.2 +jupyter_server==2.16.0 +jupyter_server_terminals==0.5.3 +jupyterlab==4.4.2 +jupyterlab_pygments==0.3.0 +jupyterlab_server==2.27.3 +MarkupSafe==3.0.2 +matplotlib-inline==0.1.7 +mistune==3.1.3 +nbclient==0.10.2 +nbconvert==7.16.6 +nbformat==5.10.4 +nest-asyncio==1.6.0 +notebook==7.4.2 +notebook_shim==0.2.4 +overrides==7.7.0 +packaging==25.0 +pandocfilters==1.5.1 +parso==0.8.4 +pexpect==4.9.0 +platformdirs==4.3.8 +prometheus_client==0.21.1 +prompt_toolkit==3.0.51 +psutil==7.0.0 +ptyprocess==0.7.0 +pure_eval==0.2.3 +pycparser==2.22 +Pygments==2.19.1 +python-dateutil==2.9.0.post0 +python-json-logger==3.3.0 +PyYAML==6.0.2 +pyzmq==26.4.0 +referencing==0.36.2 +requests==2.32.3 +rfc3339-validator==0.1.4 +rfc3986-validator==0.1.1 +rpds-py==0.24.0 +Send2Trash==1.8.3 +setuptools==80.4.0 +six==1.17.0 +sniffio==1.3.1 +soupsieve==2.7 +stack-data==0.6.3 +terminado==0.18.1 +tinycss2==1.4.0 +tornado==6.4.2 +traitlets==5.14.3 +types-python-dateutil==2.9.0.20241206 +typing_extensions==4.13.2 +uri-template==1.3.0 +urllib3==2.4.0 +wcwidth==0.2.13 +webcolors==24.11.1 +webencodings==0.5.1 +websocket-client==1.8.0 diff --git a/2025_Research_Software_Engineering_1/src/analysis.py b/2025_Research_Software_Engineering_1/src/analysis.py new file mode 100644 index 0000000..0b02ff0 --- /dev/null +++ b/2025_Research_Software_Engineering_1/src/analysis.py @@ -0,0 +1,399 @@ +import pandas as pd +import numpy as np +import matplotlib.pyplot as plt +from typing import Dict, List, Tuple + +DATA_PATH = "../data/13311-0001_en_flat.csv" + +primary_sectors: List[str] = [ + 'Agriculture, forestry and fishing', + 'Mining and quarrying', + 'Electricity, gas, steam, air conditioning supply', + 'Water supply,sewerage,waste management,remediation' +] + +secondary_sectors: List[str] = [ + 'Construction', + 'Manufacturing', + 'Industry', + 'Industry, except construction' +] + +tertiary_sectors: List[str] = [ + 'Financial, insurance, business, real estate act.', + 'Financial and insurance activities', + 'Real estate activities', + 'Professional, scientific and technical activities', + 'Administrative and support service activities', + 'Business services', + 'Information and communication', + 'Wholesale, retail trade, repair of motor vehicles', + 'Trade, transport., storage, accom.and food service', + 'Trade,transport.,storage,accom.and food serv.,inf.', + 'Transportation and storage', + 'Accommodation and food service activities', + 'Public services, education, health', + 'Public admin. and defence, compulsory social sec.', + 'Education', + 'Human health and social work activities', + 'Public a.other services, education, health,priv.h.', + 'Other service activities', + 'Service activities', + 'Private households', + 'Arts, entertainment and recreation', + 'Arts,entertainm.,recreation,o.service act.,priv.h.' +] + + +def get_df(sector: str = 'Total', + etype: str = 'Persons in employment (domestic concept)', + start_time: int = 1999, + end_time: int = 2024) -> pd.DataFrame: + """ + Fetches and processes a DataFrame with employment data + for a specified sector and employment type over a given time range. + + Args: + sector (str): The economic sector to filter + data by (default is 'Total'). + etype (str): The type of employment data to retrieve + (default is 'Persons in employment (domestic concept)'). + start_time (int): The starting year of the time + range (default is 1999). + end_time (int): The ending year of the time range + (default is 2024). + + Returns: + pd.DataFrame: The filtered and processed DataFrame + containing the employment data. + """ + df: pd.DataFrame = pd.read_csv(DATA_PATH, sep=";") + df = df[['2_variable_attribute_label', + 'value_variable_label', + 'time', + 'value']] + if sector != 'All': + df = df[df['2_variable_attribute_label'] == sector] + df = df[df['value_variable_label'] == etype] + df['time'] = pd.to_numeric(df['time'], errors='coerce') + df = df[(df['time'] >= start_time) & (df['time'] <= end_time)] + if sector == 'All': + df = df.sort_values(by='2_variable_attribute_label') + else: + df = df.sort_values(by='time') + df['value'] = pd.to_numeric(df['value'], errors='coerce') + if sector == 'All': + df = df.drop(['value_variable_label', 'time'], axis=1) + df = df[df['2_variable_attribute_label'] != 'Total'] + else: + df = df.drop(['2_variable_attribute_label', + 'value_variable_label'], axis=1) + df = df.dropna() + return df + + +def get_sectors() -> np.ndarray: + """ + Get all unique sector names from the dataset, excluding 'Total'. + + Returns: + np.ndarray: Array of unique sector names. + """ + df: pd.DataFrame = pd.read_csv(DATA_PATH, sep=";") + df = df[['2_variable_attribute_label']] + df = df[df['2_variable_attribute_label'] != 'Total'] + return pd.unique(df.values.ravel()) + + +def line_plot_df(df: pd.DataFrame, title: str) -> None: + """ + Create a line plot for a single DataFrame. + + Args: + df (pd.DataFrame): DataFrame containing 'time' and 'value' columns. + title (str): Title of the plot. + + Returns: + None + """ + plt.plot(df['time'], df['value'], label=title) + plt.title(title) + plt.xlabel("Time") + plt.ylabel("Amount") + plt.legend() + plt.show() + + +def line_plot_multiple_df(labeled_dfs: Dict[str, pd.DataFrame], + title: str) -> None: + """ + Create a line plot for multiple DataFrames, each with its own label. + + Args: + labeled_dfs (Dict[str, pd.DataFrame]): Dictionary where keys are + labels and values are DataFrames. + title (str): Title of the plot. + + Returns: + None + """ + for key, df in labeled_dfs.items(): + plt.plot(df['time'], df['value'], label=key) + plt.title(title) + plt.xlabel("Time") + plt.ylabel("Amount") + plt.legend() + plt.show() + + +def map_sector_to_group(sector: str) -> str: + """ + Map a sector name to its corresponding economic + group (Primary, Secondary, Tertiary). + + Args: + sector (str): The name of the sector. + + Returns: + str: The economic group ('Primary Sector', 'Secondary Sector', + 'Tertiary Sector', or 'Unknown'). + """ + if sector in primary_sectors: + return 'Primary Sector' + elif sector in secondary_sectors: + return 'Secondary Sector' + elif sector in tertiary_sectors: + return 'Tertiary Sector' + else: + return 'Unknown' + + +def get_grouped_sector_df() -> pd.DataFrame: + """ + Create a DataFrame grouping employment values by economic sector group. + + Returns: + pd.DataFrame: DataFrame with groups ('Primary Sector', etc.) + and their summed employment values. + """ + df: pd.DataFrame = get_df(sector='All', + etype='Persons in employment (domestic concept)', + start_time=1999, + end_time=2024) + df = df.rename(columns={ + '2_variable_attribute_label': 'sector', + 'time': 'time', + 'value': 'value'}) + df['Group'] = df['sector'].apply(map_sector_to_group) + df = df[df['Group'] != 'Unknown'] + df_grouped = df.groupby('Group')['value'].sum().reset_index() + return df_grouped + + +def group_values(values: List[float], + labels: List[str], + threshold: int = 5) -> Tuple[List[float], List[str]]: + """ + Group values that are below a threshold percentage + into a single '<5%' category. + + Args: + values (List[float]): List of numerical values. + labels (List[str]): Corresponding labels for each value. + threshold (int): Minimum percentage to avoid grouping. Defaults to 5%. + + Returns: + Tuple[List[float], List[str]]: Grouped values + and corresponding grouped labels. + """ + total: float = sum(values) + percentages: List[float] = [(value / total) * 100 for value in values] + grouped_values: List[float] = [] + grouped_labels: List[str] = [] + other_total: float = 0 + + for value, label, percent in zip(values, labels, percentages): + if percent < threshold: + other_total += value + else: + grouped_values.append(value) + grouped_labels.append(label) + + if other_total > 0: + grouped_values.append(other_total) + grouped_labels.append("<5%") + + return grouped_values, grouped_labels + + +def sort_values(values: List[float], + labels: List[str]) -> Tuple[List[float], List[str]]: + """ + Sort values and their labels in descending order based on the values. + + Args: + values (List[float]): List of numerical values. + labels (List[str]): Corresponding labels for each value. + + Returns: + Tuple[List[float], List[str]]: Sorted values and labels. + """ + sorted_pairs: List[Tuple[float, str]] = sorted( + zip(values, labels), reverse=True) + sorted_values, sorted_labels = zip(*sorted_pairs) + return sorted_values, sorted_labels + + +def pie_plot_df(values: List[float], labels: List[str], title: str) -> None: + """ + Create a pie chart from values and labels, grouping small values. + + Args: + values (List[float]): List of numerical values. + labels (List[str]): Corresponding labels. + title (str): Title of the plot. + + Returns: + None + """ + grouped_values, grouped_labels = group_values(values, labels, 5) + sorted_values, sorted_labels = sort_values(grouped_values, grouped_labels) + plt.pie(x=sorted_values, labels=sorted_labels, autopct='%1.1f%%') + plt.axis('equal') + plt.title(title) + plt.show() + + +def pie_plot_grouped_sector(df_grouped: pd.DataFrame, title: str) -> None: + """ + Create a pie chart from a grouped sector DataFrame. + + Args: + df_grouped (pd.DataFrame): DataFrame with 'Group' and 'value' columns. + title (str): Title of the plot. + + Returns: + None + """ + plt.figure(figsize=(8, 8)) + plt.pie(x=df_grouped['value'], + labels=df_grouped['Group'], + autopct='%1.1f%%', + startangle=140) + plt.title(title) + plt.axis('equal') + plt.show() + + +def persons_in_employment_timeline() -> None: + """ + Plot a timeline of total persons in employment from 1999 to 2024 in Germany. + + Returns: + None + """ + df_total = get_df() + line_plot_df(df_total, + 'Persons in Employment from 1999-2024 in GER') + + +def employment_types_timeline() -> None: + """ + Plot timelines comparing employees and self-employed persons + from 1999 to 2024 in Germany. + + Returns: + None + """ + empl_attr = 'Employees (domestic concept)' + self_empl_attr = 'Self-employed persons a. family workers (domestic)' + employment_data_by_type = { + empl_attr: get_df(etype=empl_attr), + self_empl_attr: get_df(etype=self_empl_attr) + } + line_plot_multiple_df(employment_data_by_type, + 'Employment types from 1999-2024 in GER') + + +def employed_per_sector_2024() -> None: + """ + Create a pie chart showing the distribution of employees across sectors + in Germany for the year 2022. + + Returns: + None + """ + df_sectors_2022 = get_df( + sector='All', + etype='Employees (domestic concept)', + start_time=2022, + end_time=2022) + labels = df_sectors_2022['2_variable_attribute_label'].tolist() + pie_plot_df(values=df_sectors_2022['value'].to_list( + ), labels=labels, title='Most Employed per sector in 2022 in GER') + + +def self_employed_per_sector_2024() -> None: + """ + Create a pie chart showing the distribution of self-employed persons + across sectors in Germany for the year 2022. + + Returns: + None + """ + df_self_sectors_2022 = get_df( + sector='All', + etype='Self-employed persons a. family workers (domestic)', + start_time=2022, + end_time=2022) + labels = df_self_sectors_2022['2_variable_attribute_label'].tolist() + pie_plot_df(values=df_self_sectors_2022['value'].to_list( + ), + labels=labels, + title='Most Self-Employed per sector in 2022 in GER') + + +def biggest_employment_sectors_timeline() -> None: + """ + Plot timelines of employment data for the most significant sectors + in Germany from 1999 to 2024. + + Returns: + None + """ + dict_sectors = { + 'Service activities': get_df(sector='Service activities'), + 'Private households': get_df(sector='Private households'), + 'Education': get_df(sector='Education'), + 'Trade,transport.,storage,accom.and food serv.,inf.': get_df( + sector='Trade,transport.,storage,accom.and food serv.,inf.'), + 'Business services': get_df(sector='Business services'), + 'Public services, education, health': get_df( + sector='Public services, education, health'), + 'Manufacturing': get_df(sector='Manufacturing') + } + + emp_sector_title = 'Biggest sectors from 1999-2024 in GER' + line_plot_multiple_df(dict_sectors, emp_sector_title) + + +def economic_sectors() -> None: + """ + Create a pie chart showing the total employment distribution + by economic sector group (Primary, Secondary, Tertiary). + + Returns: + None + """ + df_grouped_sector = get_grouped_sector_df() + pie_plot_grouped_sector( + df_grouped_sector, 'Employment Distribution by Economic Sector') + + +if __name__ == "__main__": + persons_in_employment_timeline() + employment_types_timeline() + employed_per_sector_2024() + self_employed_per_sector_2024() + biggest_employment_sectors_timeline() + economic_sectors() diff --git a/2025_Research_Software_Engineering_1/src/notebook.ipynb b/2025_Research_Software_Engineering_1/src/notebook.ipynb new file mode 100644 index 0000000..a9e1ba5 --- /dev/null +++ b/2025_Research_Software_Engineering_1/src/notebook.ipynb @@ -0,0 +1,283 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "54f79d6b", + "metadata": {}, + "source": [ + "# Exploratory data analysis on employment in Germany (1999–2024)\n", + "\n", + "This notebook presents an exploratory data analysis of employment trends in Germany from 1999 to 2024. Using official data from the German Federal Statistical Office (Destatis), we investigate key patterns in employment over time, with a focus on overall employment trends, the distribution between employment types (employees vs. self-employed), sectoral developments, and structural shifts between economic sectors. The objective is to uncover long-term transformations in the German labor market and highlight significant historical developments.\n" + ] + }, + { + "cell_type": "markdown", + "id": "e46390e8", + "metadata": {}, + "source": [ + "# Research questions\n", + "\n", + "1. How has overall employment in Germany evolved from 1999 to 2024?\n", + "2. What are the long-term trends in the balance between employees and self-employed individuals in Germany’s labor market?\n", + "3. Which economic sectors employed the most people in Germany in recent years, particularly in 2022?\n", + "4. What structural shifts have occurred in the largest employment sectors in Germany over the past 25 years?\n", + "5. How has the distribution of employment among the primary, secondary, and tertiary sectors changed, and what does it indicate about Germany’s economic structure?" + ] + }, + { + "cell_type": "markdown", + "id": "3cb08a48", + "metadata": {}, + "source": [ + "# Dataset Overview\n", + "\n", + "The dataset used was obtained from the Genesis portal of Destatis (German Federal Statistical Office). It contains employment data categorized by sector, employment type, and year. \n", + "Before analysis, the data underwent minor cleaning steps, such as selecting relevant columns, handling missing values, and ensuring consistent numeric formatting. The cleaned data is stored in `data/13311-0001_en_flat.csv`, and helper functions are imported from `src/analysis.py`.\n" + ] + }, + { + "cell_type": "markdown", + "id": "0ecbc3ab", + "metadata": {}, + "source": [ + "# Plugin Overview\n", + "\n", + "The notebook utilizes the following plugins:\n", + "- `pandas`: For data manipulation and analysis.\n", + "- `matplotlib`: For data visualization.\n", + "- `numpy`: For numerical operations." + ] + }, + { + "cell_type": "markdown", + "id": "a085823d-62be-4024-8fa1-297b8e1859a4", + "metadata": {}, + "source": [ + "# Environment setup\n", + "\n", + "This part installs required packages for this script." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "b4edaacc-271d-44ad-8c56-3e47a6c47973", + "metadata": {}, + "outputs": [], + "source": [ + "%%capture\n", + "%pip install -q pandas numpy matplotlib" + ] + }, + { + "cell_type": "markdown", + "id": "b5e5d744", + "metadata": {}, + "source": [ + "# General Employment Trends (1999–2024)\n", + "\n", + "Employment in Germany has generally increased over the last 25 years. From 1999 to 2024, the total number of employed persons rose from approximately 39 million to 46 million — an increase of more than 7 million. Two notable periods of decline stand out: the early 2000s and the late 2010s. The dip around 2003 likely reflects the aftermath of the dot-com bubble and global economic downturn, while the more recent decline around 2019 aligns with the onset of the COVID-19 pandemic and related disruptions to the labor market." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "5adc38aa", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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r7399ttakSJFNC8vL61evXrali1bDPPOnz9f8/Pz037//XetUqVKmrOzs3bx4kU1T926ddXf4P1GjRpply5dMvzdrFmztDJlymiurq5ahQoVtB9//NGkDFjX3333ndapUyfN09NTK1eunPoM3d27d7WXX35Zy58/v+bh4aHenzdvXobfs3nz5trw4cMNr0uWLKlNmjRJ69Onj5Y7d26tePHi2ty5c7O8rtJCuefMmaN16NBBlTswMFDbuXOndvbsWVUGrI+GDRtq586dM/zNhAkTtOrVq6u/K1asmPq7rl27ahERERl+NrbLsGHDtAIFCmju7u5a48aNtb1796r3UlNTtbJly2qff/65SdkOHTqkyoeyPG5ZYdWqVVrNmjXV55YuXVr78MMPtaSkpExtO+wbeN/4ge+WFvaftPNhWkb7G/aHXr16aXny5FGf+cwzz2hnzpwxLE//uz///FPtb5inS5cuWkxMjLZgwQK1P+BvsU6Tk5O1zEi7T+kKFy6szZw502Ra586dtZ49e6rnsbGxqtyrV682madWrVrae++9p56fPn1afedjx44Z3k9JSVHbG+s2K6ZOnaq2k/FvL2/evFpCQoJh2pgxY7SKFStmuAysEx8fH23hwoUm069du6YVLVpUlRPrcNq0aQ8tS3b8Dtu2bat+J/fu3Uv3fez/xst/WJn0/RG/Dd3Ro0fVNOPjjb0c761FUnKKdupmlPbrgavax38e116au0ur9uEGreSY1dp7K4/m6Pk7O1hNWgGpWlx5pk2179q1S5566il1hYartmbNmklc3P2oFu7evSs9e/ZU7+EKBmlxXOlmJQ0OK1asUFeXmAdXQMjcmH1wu8TkHH/cP889GVQ56FUNQ4cOVdto6dKlaj137dr1gSoMpOpxxfv999+rK15cteJqHCl4/A3+HlfKem8dXAEj7f/222+rK25UD/Xp00e2bNliUo6PPvpIunXrppbRvn17tR9gf4D3339fXdmvW7dOTp48qaoM8ufPn6Xv+eWXX0qdOnXk0KFD8sYbb8jgwYPl9OnTT7z+UDXy6quvyuHDh9U+h6omfEdkCPfv36+2EdarsXPnzsny5cvlzz//VNVMepkyMnr0aPn1119l4cKFcvDgQZW9QOYH6wfrGRmKtJk3vMbvC/M+bllRpYL5sf2w/pE5WbBggcoCZGbb4feJcgPW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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import analysis\n", + "analysis.persons_in_employment_timeline()" + ] + }, + { + "cell_type": "markdown", + "id": "d6bde2ed", + "metadata": {}, + "source": [ + "# Employment Types: Employees vs. Self-employed\n", + "\n", + "A breakdown of employment types reveals a growing disparity between employees under contract and self-employed individuals (including family workers). In 1999, the difference between the two groups was approximately 30 million. By 2024, this gap had widened to about 35 million, driven by an increase of nearly 5 million employees. This trend reflects the stability and institutional preference for contract-based employment in Germany, as well as broader shifts away from self-employment toward more structured work arrangements." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "27829c67", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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y2suR49vwHcDafH5mPD5u9dkEJUo+R0P4tlnn811yo+hQ4caYWFhxqpVq4zo6GhrOnv2rC7fu3ev8fzzzxsbN2409u/fb3z99ddG3bp1jc6dO1vrwJgYzZo1M7p3725s2bLFWLJkiY6lNWbMGCvNn3/+aQQHBxujRo0yfvvtN2PatGmGr6+vpjV99tlnOn7WrFmzdKyNBx54wKhQoYIRExOTp33hOFoXJikpSfMbj6bMzEzjTEpaoUx477zq37+/jv2WGxwT1atXN+bMmWPs2bPH6NOnj1GnTh3j2muv1eMP+96hQwfj+uuvt14zfvx4o1y5cprm119/NVavXm3Ur1/fuOuuu3J870ceecSoVq2asWjRImPnzp26PDw83Dhx4oQuf/HFF40mTZq4bBteY/8udevWzejdu7exYcMG4/fffzcef/xxo2LFitY6fvjhByM0NFS/I/v27TO+++473Rfzez9v3jxdjm3A2HYYh+6dd97JMW++/PJL3c+MjAxrHv7H97lr1676fca+Y/w75OP8+fM1TWJiolG1alXjlltuMbZv324sX77cuOSSS3Sf7flTvnx5Y9iwYTo233vvvafr6NGjh+YF9u8///mP4e/vbxw6dEhfk5qaajRu3NgYOHCgsW3bNv1skOcNGzY0UlJSdGw+nK8wTh/OTViOvMC+4pyF/GratGm285h920+fPq3nsKuuusr48ccfjT/++EOPjTVr1njMo/OlRx5iH3BOw/H16quv6rltxYoVLsdgjRo1jNmzZ+vr8blj7ELzcz18+LARERGh+YnPHut5//33rTENP/74Y83vL774Qs+leER67Dvg3Gy+x+eff675cv/992v+Y+winKPxGqTBupE3cXFx1vYtXrxYxzdMTk7O8VghcuJaU1DX73wHWl59c7eBSM3JHEz04MGDeiHAlxpBEC42CJbcM+PAgQNGz549dcDSSpUq6QnP04ClrVq10i80TlyeBix98803jVq1amkaDFi6bt26PO8LAy3vHfwIeGo/uaBQJrx3XuFijosaggX7hAu5CcfE2LFjredr167Vebjwmz799FOjbNmyLoEW1osLoP1i5OPjoxcp90ALgQcutp988omVHkEDAq9Jkybp87///lvXaQ7Ci+X4rpgXS1zEESS5X+wwuO/bb7+t/yP4wSDDdh999JFehAEX+QYNGui6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I14jfcOGDbXWIT9wTLz66qs6PA/yDc8B24jzPPIdJbZ33XWXxMbGZsvnpUuXSuvWrfX98fkhzeLFi/W4Qx7gdaiazEsVHAa/xnFrl5aWpscYBsp2h+MMxw7yzIT8xedj/5xR6mxuQ14/o3fffTfXu1bg+MLnZ5akoM0y1oUSGgSTeA/cdNu96v3FF1+UatWq6WcFb731llx66aX6PjjO0RQnJ/i8sa/mucKEPMc8fAbYZk+lO3nd7/fff19L6pHuoYce0vecNGmSHgP4HLD9duf7Dm/dulXPkziOsLxNmzY6ggGOnwEDBug5BscRJmyDp6pDvMeDDz6o+YN8wg+CBQsWWMux71in/ZxWZBj5dNdddxmVKlUyhgwZYowfP9549tlnXabSKj4+Hrcy0kfKu6SkJGPXrl36aMnMNIyUxMKZ8N55kJaWZoSEhBgjRowwkpOTc0zXrVs3o3fv3saGDRuM33//3Xj88ceNihUrGidOnNDl+A61bNlS/z99+rQxc+ZMPY6io6N18uSHH34wQkNDjVmzZhn79u0zvvvuO6NOnTou3z+so3r16sacOXOMPXv2GH369NE01157rbFkyRLN8w4dOhjXX3+99RpsS7ly5TTNr7/+aqxevdqoX7++fudN/fv3N2666Sbr+SOPPGJUq1bNWLRokbFz505dHh4ebu3fiy++aDRp0sRl+/Gazp075zmPsA+BgYHGu+++a+zevdt4+umnjfLly1v55snKlSs1Dxo3bqz5s23bNuPGG2/UPEhNTdU0e/fu1f197bXX9H1//vlno3Xr1sZ9991nrad27dqa16+88oqmxzR58mSjZs2a+jkcOHDA+PHHH43Zs2dr+oyMDKNVq1ZGp06djI0bNxrr1q0z2rRpY1x99dUu+Yxj55ZbbjG2b9+u64mKijL+/e9/6/IjR44Yfn5+xn//+19j//79uu3Tpk3T48MT7M+4ceM0//7880/j448/NoKDgzXf8gp5PXjwYKNjx4563Jl5/9577+lni+Ns7dq1urxnz57Z8hnH0k8//WRs3rxZjxnsb/fu3fU59g+f58SJE63XYfmjjz7qks/4HACfg6+vr+aD6csvv9TPKqc8QF4OGzZM/z958qQREBBghIWFGb/99pvOe+GFF4wrr7wyX58R3g/fD+zD1q1bs233J598osfht99+a30OON4GDhyonxm+Y/juNGzY0EhJSdE0+H7gs7/nnnuMHTt26ITPDfuLYwjHE95vypQpOX5WWI48j4mJcZmPzwXfCXxO2K8rrrjCCAoKsvI1P8fmbbfdpt/nb775RvOyR48exvDhw/X79/777+v74/V5/Q43bdrU+L//+z/9PLB87ty5xpYtWzRfXn/9df2Omec88zO2HxPYdhxjWA++zzgeke84Nu0iIyP1HJrna00BXb/zHWghQ/CFIlcMtC6Mx4MfAc/40MKZ8N559Pnnn2tQUbZsWT2pjRkzxjohAy7A+L64B2L16tUz3n777WyBFsyfP1+Po9x07drVeOmll1zmffTRR0bVqlWt51jH2LFjrec4+WIeLpymTz/9VLfdhG3BCf/w4cPWvMWLFxs+Pj5W0GcPtBITEw1/f3+94JhwsUHgNWnSJH3+999/6zp/+eUXazl+qCFIzGse4eL+0EMPuSxv3759ngKtzz77zJqHkz4uPGYAMmjQIOOBBx5weR22B/trHo842SNItcMFB8FopoegHBcB7O/BgwetebhgYVvWr19v5TMCoYSEBCvNqFGjdJ9g06ZNmh4X3QuFoOPWW2/N12sQQNgvup7gQoptMy+GZj5///33VpoJEyboPFwMTQ8++KBerPMSaAGC85dfftl6jou4PQB298Ybb+hFGL766ivNSxyn06dPtwIBM5DN62eEYzs2Ntblfcztnjp1qgZyq1atcvkOIqiyHxcIJHDMLV261Pr+IBgwAy/44osv9DtgPx5yg3MEtt/+PvgxZd9+QFCDeWa+Xuixic8NP1AQ7Jiwn/ic8/odLl++vPWdd4fACHnpzn5MIP/wvcR+5gY/lHIq8CnMQCvfVYfVq1fneFlE59poHTlyRL755httjIlicFTnoXGnWVyemJioVT8ogjcn3Ng0r8Xb9tcNGTLEWu/zzz/vsmzw4MHagNlePYMqMxOK28HerhLzUAWHG6qaUF2A77ipY8eO2pNnz5492bYN+4AqnSuvvNKahwapqEI174OK6pFevXppVQR8++23Wt2I9iV5zSOsq3379i7vje3KC3s6VOWgqsbcNrw3Piv7+6IzA/YX729yH4gZ1T+o/sS6UNX43XffWcuwblRBYjI1adJEq5LM9zWrReznUVRzmVVyLVu2lK5du+pnhXzCANHofJSbadOmaXUMqm6wH++8847H8Q7z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oYGgCsvMNO6jTZvPz5cGwRFuZYDRdVGa4imNuQ53aAOGCNiczLuhExEREV308A6ARuu4ASRusYGxtC4G2mqhag+N3osDlH6hBM6ccA83IiIiIjuv3NsA1T19+vTR6UKggfuCBQu0VyNuu2BCwzVU66Etlb1U6+jRo1ajNjyuX7/eZX1Ybi4zH8159jSoi0VvR7PKylOanBrPBQYG6kRERETkSInWxUI7fARZ8+fPlxUrVmS7IWSbNm20ERt6CZrQCxDDOZh3LMcjqjDtPdbQZgxBlNlAH2ns6zDTmOtA9STey54GVZl4zjujExER0YUq1Lt1oroQPQq//vprbUhvtodCmyeUNOERN6RFo3s0kEfwhF6ACH7QEB4wHAQCKvSCRDUm1oExsrBus8QJwzqgN+Ho0aO1fRmCurlz52pPRBPeA+Nv4caUGDsLjf7PnDkjAwYMKKTcISIiomLPKER4e0/TzJkzrTRJSUnGQw89ZISHhxvBwcHGzTffbERHR7us58CBA0bPnj2NoKAgo1KlSsbjjz9upKWluaRZuXKl0apVKyMgIMCoW7euy3uY3nzzTaNWrVqapl27dsa6devyvC/x8fG67XgkIiKi4sHp63eex9Gi3HEcLSIiouInweHrd6G20SIiIiIqyRhoERERETmEgRYRERGRQxhoERERETmEgRYRERGRQxhoERERETmEgRYRERGRQxhoERERETmEgRYRERGRQxhoERERETmEgRYRERGRQxhoERERETmEgRYRERGRQxhoERERETmEgRYRERGRQxhoERERETmEgRYRERGRQxhoERERETmEgRYRERGRQxhoERERETmEgRYRERGRQxhoERERETmEgRYRERGRQxhoERERETmEgRYRERGRQxhoERERETmEgRYRERGRQxhoERERETmEgRYRERGRQxhoERERETmEgRYRERGRQxhoERERETmEgRYRERFRSQy0fvjhB+ndu7dUq1ZNypQpI1999ZXL8vvuu0/n26frr7/eJc3Jkyfl7rvvltDQUKlQoYIMGjRIEhMTXdJs27ZNrrrqKilbtqzUrFlTJk2alG1b5s2bJ40aNdI0zZs3l0WLFjm010RERFRaFGqgdebMGWnZsqVMmzYtxzQIrKKjo63p008/dVmOIGvnzp2ybNkyWbBggQZvDzzwgLU8ISFBunfvLrVr15ZNmzbJ5MmT5dlnn5V33nnHSrNmzRrp16+fBmm//vqr9OnTR6cdO3Y4tOdERERUGpQxDMOQIgClVfPnz9cAx16iFRcXl62ky/Tbb79JkyZNZMOGDdK2bVudt2TJErnhhhvk8OHDWlI2ffp0efrppyUmJkYCAgI0zVNPPaXr3L17tz6/8847NehDoGbq0KGDtGrVSmbMmJGn7UdAFxYWJvHx8Vq6RkREREWf09fvIt9Ga9WqVVKlShVp2LChDB06VE6cOGEtW7t2rVYXmkEWdOvWTXx8fOSXX36x0nTu3NkKsqBHjx6yZ88eOXXqlJUGr7NDGszPSUpKin449omIiIio2ARaqDb88MMPZfny5fLyyy/L6tWrpWfPnpKRkaHLUUqFIMzOz89PIiIidJmZJjIy0iWN+fx8aczlnkyYMEEjYHNC2y8iIiIiOz8pwvr27Wv9jwbqLVq0kHr16mkpV9euXQt128aMGSMjR460nqNEi8EWERERFZsSLXd169aVSpUqyd69e/V5VFSUxMbGuqRJT0/XnohYZqY5evSoSxrz+fnSmMs9CQwM1Lpc+0RERERUbAMtNHBHG62qVavq844dO2pjefQmNK1YsUIyMzOlffv2Vhr0RExLS7PSoIci2nyFh4dbaVA9aYc0mE9ERERULAMtjHe1ZcsWnWD//v36/8GDB3XZqFGjZN26dXLgwAENhG666SapX7++NlSHxo0bazuuwYMHy/r16+Xnn3+Whx9+WKsc0eMQ7rrrLm0Ij6EbMAzEnDlzZMqUKS7Vfo8++qj2Vnz11Ve1JyKGf9i4caOui4iIiOiCGYVo5cqVGFoi29S/f3/j7NmzRvfu3Y3KlSsb/v7+Ru3atY3BgwcbMTExLus4ceKE0a9fPyMkJMQIDQ01BgwYYJw+fdolzdatW41OnToZgYGBRvXq1Y2JEydm25a5c+caDRo0MAICAoymTZsaCxcuzNe+xMfH67bjkYiIiIoHp6/fRWYcreKO42gREREVPwmlfRwtIiIiouKKgRYRERGRQxhoERERETmEgRYRERGRQxhoERERETmEgRYRERGRQxhoERERETmEgRYRERGRQxhoERERETmEgRYRERGRQxhoERERETmEgRYRERGRQxhoERERETmEgRYRERGRQxhoERERETmEgRYRERGRQxhoERERETmEgRYRERGRQxhoERERETmEgRYRERGRQxhoERERETmEgRYRERGRQxhoERERETmEgRYRERGRQxhoERERETmEgRYRERGRQxhoERERETmEgRYRERGRQxhoERERETmEgRYRERGRQxhoERERETmEgRYRERFRSQy0fvjhB+ndu7dUq1ZNypQpI1999ZXLcsMwZNy4cVK1alUJCgqSbt26yR9//OGS5uTJk3L33XdLaGioVKhQQQYNGiSJiYkuabZt2yZXXXWVlC1bVmrWrCmTJk3Kti3z5s2TRo0aaZrmzZvLokWLHNprIiIiKi0KNdA6c+aMtGzZUqZNm+ZxOQKiN954Q2bMmCG//PKLlCtXTnr06CHJyclWGgRZO3fulGXLlsmCBQs0eHvggQes5QkJCdK9e3epXbu2bNq0SSZPnizPPvusvPPOO1aaNWvWSL9+/TRI+/XXX6VPnz467dixw+EcICIiohLNKCKwKfPnz7eeZ2ZmGlFRUcbkyZOteXFxcUZgYKDx6aef6vNdu3bp6zZs2GClWbx4sVGmTBnj77//1udvvfWWER4ebqSkpFhpnnzySaNhw4bW8zvuuMPo1auXy/a0b9/eePDBB/O8/fHx8boteCQiIqLiwenrd5Fto7V//36JiYnR6kJTWFiYtG/fXtauXavP8YjqwrZt21ppkN7Hx0dLwMw0nTt3loCAACsNSsX27Nkjp06dstLY38dMY74PERER0YXwkyIKQRZERka6zMdzcxkeq1Sp4rLcz89PIiIiXNJccskl2dZhLgsPD9fH3N7Hk5SUFJ3sVZREREREdkW2RKuomzBhgpawmRMa2RMREREVi0ArKipKH48ePeoyH8/NZXiMjY11WZ6enq49Ee1pPK3D/h45pTGXezJmzBiJj4+3pkOHDl3E3hIREVFJVGQDLVT3IdBZvny5S/Uc2l517NhRn+MxLi5OexOaVqxYIZmZmdqWy0yDnohpaWlWGvRQbNiwoVYbmmns72OmMd/Hk8DAQB1Swj4RERERFZlAC+NdbdmyRSezATz+P3jwoI6rNWLECHnhhRfkm2++ke3bt8u9996rY25h6AVo3LixXH/99TJ48GBZv369/Pzzz/Lwww9L3759NR3cdddd2hAeQzdgGIg5c+bIlClTZOTIkdZ2PProo7JkyRJ59dVXZffu3Tr8w8aNG3VdRERERBfMKEQrV67ULpXuU//+/a0h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iIiIHMJAqxiZMGGCXH755Tr6fJUqVaRPnz6yZ88elzTJyckybNgwqVixooSEhMitt94qR48edUlz8OBB6dWrlwQHB+t6Ro0aJenp6S5pVq1aJZdddpn2yqhfv77MmjVLSouCymfkMe4i4D7FxMRIaeGtvH7kkUekTZs2ery2atXK43tt27ZNrrrqKilbtqyOCj1p0iQpLQoqnw8cOODxmF63bp2UBt7I561bt0q/fv30GA0KCpLGjRvLlClTsr0Xz9GXO57PXjtHo9chFQ89evQwZs6caezYscPYsmWLccMNNxi1atUyEhMTrTRDhgwxatasaSxfvtzYuHGj0aFDB+OKK66wlqenpxvNmjUzunXrZvz666/GokWLjEqVKhljxoyx0vz5559GcHCwMXLkSGPXrl3Gm2++afj6+hpLliwxSoOCyueVK1eix6+xZ88eIzo62poyMjKM0sIbeQ3Dhw83pk6datxzzz1Gy5Yts71PfHy8ERkZadx99936Xp9++qkRFBRkvP3220ZpUFD5vH//fj2mv//+e5djOjU11SgNvJHP7733nvHII48Yq1atMvbt22d89NFHeqziPGziObpHgeSzt87RDLSKsdjYWD0IVq9erc/j4uIMf39/Y968eVaa3377TdOsXbtWn+OC7+PjY8TExFhppk+fboSGhhopKSn6fPTo0UbTpk1d3uvOO+/Ug7s0ciqfzS/xqVOnCnyfSlJe240fP95jAPDWW28Z4eHhVt7Dk08+aTRs2NAojZzKZzPQwo8Luvh8Nj300ENGly5drOc8RxdMPnvrHM2qw2IsPj5eHyMiIvRx06ZNkpaWJt26dbPSNGrUSGrVqiVr167V53hs3ry5REZGWml69OihN9ncuXOnlca+DjONuY7Sxql8NqEKpmrVqnLdddfJzz//LKXZheR1XiBt586dJSAgwOXzQHXDqVOnpLRxKp9N//rXv7RKp1OnTvLNN99IaeWtfMZ6zHUAz9EFk8/eOkcz0CqmMjMzZcSIEXLllVdKs2bNdB7qjXEhqVChgktaXOzNOmU82i/+5nJzWW5pECQkJSVJaeJkPuOLO2PGDPniiy90QluBa665RjZv3iyl0YXmdV7k5fMoLZzMZ7SFefXVV2XevHmycOFCDbTQfqY0Blveyuc1a9bInDlz5IEHHrDm8RxdMPnsrXO0X75SU5GBRn47duyQn376qbA3pURzMp8bNmyok+mKK66Qffv2yWuvvSYfffSRlDY8pot/PleqVElGjhxpPUeD5SNHjsjkyZO1lKs08UY+4/U33XST3i6me/fuXt2+kmKYg/nsrXM0S7SKoYcfflgWLFggK1eulBo1aljzo6KiJDU1VeLi4lzSo6cFlplp3HsSmc/PlyY0NFR7Z5QWTuezJ+3atZO9e/dKaXMxeZ0XF/p5lDRO57Mn7du3L3XHtDfyedeuXdK1a1ctYRk7dqzLMp6jCyafvXWOZqBVjKDzAg6s+fPny4oVK+SSSy5xWY5u1/7+/rJ8+XJrHtqgYJiBjh076nM8bt++XWJjY600y5Yt0y9okyZNrDT2dZhpzHWUdAWVz55s2bJFi6tLC2/kdV4g7Q8//KDtNuyfB36thoeHS0lXUPlc2o9pb+Uz2nF26dJF+vfvLy+++GK29+E52iiQfPba8XxRTempQA0dOtQICwvT7qj2rqZnz5516dKKbq4rVqzQLq0dO3bUyX3Yge7du2u3WHQHrly5ssfhHUaNGqU9NaZNm1aqug4XVD6/9tprxldffWX88ccfxvbt241HH31Ueyqia3xp4Y28BuQhero9+OCDRoMGDfR/TGYvQ/RCwvAOGJYAXcI/++wzPcZLy/AOBZXPs2bNMmbPnq3nDUwvvviiHtPvv/++URp4I59xLsC54v/+7/9c1oGedSaeo4cWSD576xzNQKsYQVzsacJ4IqakpCTtooqu7Pgi3nzzzXrw2B04cMDo2bOnjhmCsZ0ef/xxIy0tzSUNurW2atXKCAgIMOrWrevyHiVdQeXzyy+/bNSrV88oW7asERERYVxzzTV6UihNvJXXV199tcf1YLgB09atW41OnToZgYGBRvXq1Y2JEycapUVB5TMCrcaNG+vrMZRJu3btXLrYl3TeyGcMneFpHbVr13Z5L56jxfF89tY5usy5jSYiIiIiL2MbLSIiIiKHMNAiIiIicggDLSIiIiKHMNAiIiIicggDLSIiIiKHMNAiIiIicggDLSIiIiKHMNAiIhKR++67T/r06VPYm0FEJYxfYW8AEZHTypQpk+vy8ePHy5QpU/QeakRE3sRAi4hKvOjoaOv/OXPmyLhx4/Qms6aQkBCdiIi8jVWHRFTiRUVFWVNYWJiWcNnnIchyrzq85pprZPjw4TJixAgJDw+XyMhI+d///idnzpyRAQMGSPny5aV+/fqyePFil/fasWOH9OzZU9eJ19xzzz1y/PjxQthrIioKGGgREeXggw8+kEqVKsn69es16Bo6dKjcfvvtcsUVV8jmzZule/fuGkidPXtW08fFxcm1114rrVu3lo0bN8qSJUvk6NGjcscddxT2rhBRIWGgRUSUg5YtW8rYsWPl0ksvlTFjxkjZsmU18Bo8eLDOQxXkiRMnZNu2bZp+6tSpGmS99NJL0qhRI/3//fffl5UrV8rvv/9e2LtDRIWAbbSIiHLQokUL639fX1+pWLGiNG/e3JqHqkGIjY3Vx61bt2pQ5am91759+6RBgwYFst1EVHQw0CIiyoG/v7/Lc7Ttss8zezNmZmbqY2JiovTu3VtefvnlbOuqWrWq49tLREUPAy0iIi+57LLL5IsvvpA6deqInx9Pr0TENlpERF4zbNgwOXnypPTr1082bNig1YVLly7VXooZGRmFvXlEVAgYaBEReUm1atXk559/1qAKPRLRngvDQ1SoUEF8fHi6JSqNyhgcCpmIiIjIEfyJRUREROQQBlpEREREDmGgRUREROQQBlpEREREDmGgRUREROQQBlpEREREDmGgRUREROQQBlpEREREDmGgRUREROQQBlpEREREDmGgRUREROQQBlpERERE4oz/B9smnLjOYsZ1AAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "analysis.employment_types_timeline()" + ] + }, + { + "cell_type": "markdown", + "id": "da2dfcf5", + "metadata": {}, + "source": [ + "# Sectoral Employment in 2022\n", + "\n", + "To provide a snapshot of the employment landscape, we examine sectoral data for the year 2022. The analysis shows that both employees and self-employed persons were predominantly concentrated in similar sectors. \"Service activities\" topped the list for both groups. \"Education\" ranked second, and while \"Private households\" occupied the third position for employees, other sectors like \"Business services\" also showed significant employment shares. The similarities suggest that certain sectors, especially in the service domain, are key drivers of employment regardless of contract type." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "31485ca6", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA+IAAAGeCAYAAAAQZbvYAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQAAwO5JREFUeJzs3QV8VfX/BvDnrnuDsQJGd3eqgIIFJnZgJ3b7t7u79Wd3gIqihEoICAhId8PGxrp79/96Dt55NxZ3Y9u58bxfrwm7ce73nHsu3ud8vmGxWq1WiIiIiIiIiEiz8GqelxERERERERERUhAXERERERERaUYK4iIiIiIiIiLNSEFcREREREREpBkpiIuIiIiIiIg0IwVxERERERERkWakIC4iIiIiIiLSjBTERURERERERJqRgriIiIiIiIhIM1IQFxHxMPPnz4fFYjH+dFYPP/yw0UZxDh06dMCll15qdjOcho6HiIgcKQVxEXEZH330kRHO+LNo0aLD7rdarYiPjzfunzRpUpO0ITEx0QiJq1evrnebq/tZunRpk7RT3NcXX3yBl19+Ga7s999/x+WXX45u3bohKCgInTp1wpVXXokDBw5U+/glS5bgqKOOMh4bGxuLm266Cbm5uZUe8/fff+OGG25A7969ERwcjHbt2uGcc87B1q1bKz2uvLzc+Fyeeuqpxr8XfGyfPn3w+OOPo7CwEGZau3YtLrvsMnTs2BEBAQEICQnBgAEDcNddd2Hnzp2VHssLATX9u8LnVr3wZvvx9vZGdHQ0zjrrLGzatMmEvRQREfLRYRARV8MvmQwj/GJub8GCBdi/fz/8/f2b7LUZxB955BGjIsYvyI569NFHjS/XVXXp0qWRWyjujuf++vXrccsttzTba27ZsgVeXo137f7uu+9Geno6zj77bHTt2tUIma+//jp+/vln4yIXw7YNfz/uuOPQs2dPvPjii8Zn/Pnnn8e2bdvw66+/VjzumWeeweLFi41t9uvXD0lJScY2Bw0aZFzwYtim/Px8I+yOGDEC1157rRFK//rrLzz00EPGBYI//vijzt4YjX086L333sN1112HVq1a4cILL0SPHj1QWlpqvNeffPKJcfGloKDACNI2/Lfuf//732Hbsn+MDS9eDB06FCUlJUbgf/vtt42Qzu3bH28REWkeCuIi4nJOPvlkfPvtt3j11Vfh4+NTKaAMHjwYqampcDYnnXQShgwZYnYzpAFYQS0uLq5UZXQ3DHzcTz8/v2rvb+yLWwzUvJBmH2ZPPPFEjBkzxgjPrE7b/N///R9atGhhhMawsDDjNl4Iu+qqqzBnzhwcf/zxxm233Xab8W+A/T6ce+656Nu3L55++ml89tlnxm28n4F91KhRFY/jtrhNWxgfP358re1v7OPBij9D+OjRo42LEaGhoZXuf+GFF/DEE08c9jz++3fRRRc59BpHH320UQW36d69u/GaDPmsuIuISPNS13QRcTnnn38+0tLSMHfu3IrbGJS+++47XHDBBdU+Jy8vD7fffrvRFZVfovkllFU1dme3x20yIERERBjdQvk4BgFiEGBFiVhRs3X1ZDfXI7V7925jW2zTG2+8YXTVZTdchox9+/YZ7XzsscfQtm1bBAYG4rTTTjMqivYYJNgln+GE1XoGx169emH69OkOtYEXN3ghg9tnVY5f8BMSEiru//DDD402/vPPP4c998knnzSqcPaPX7ZsmRGuwsPDjX1hyGIAqorDDHhc2d7OnTvjnXfecfi4jR071qh0rly50ghWbDt7HrDaV1VRUZERtNgLgecAzwUGEN5uj/vILs6ff/650c2Zj501a1aNbVixYgVOOOEE45jZXp/dru0x5LKiye1xP2NiYnDNNdcgIyPjsO2xystjxTDG4Mljw4Bp29+ZM2diz549Fecf33ebgwcP4oorrjC2z9fp378/Pv744xrPNbaJx5z7uHHjRofHRNuGXPD9ZACOiooyunifccYZSElJQV2OOeaYwyrKvK1ly5aVuktnZ2cbn0mei7YQTlOmTDE+n998803FbXz/q15IYLWdx9x+m3yMfQi3YdvJke7ajX082MuGz+c5VzWEE99Lfv6rq3Q3FIM57dixo9G2KSIijlNFXERcDr8Ejxw5El9++aVRabaFl6ysLJx33nlGpdweQyzHg86bN88IKQyps2fPxp133mkEx5deesl43IYNG4wgy26t7ErOcLJ9+/aK8Miusbz9wQcfxNVXX13xRba6L/VVsW1VK/X84h0ZGVnpNn4R50WFG2+80Qjazz77rDHO9dhjjzUuBLBLL9v02muv4Y477sAHH3xQ6fnsrssqILvcXnLJJUZ4ZlddBskJEybU2D4GCV5cYOh76qmnkJycjFdeecXYdwZvXphgNW3q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cyt+f/TRR3HgwIGKnxtvvLHivttvvx1t2rTB6tWrERcXhzvuuKPivq+//hpeXl6YPHlys++DiIhITRTERURExCmUlpZi5syZOPvss41AvWPHjor7QkNDERsbW/HD6rfNpk2bcMkll6Br16649NJLjd8pMzMT999/P9544w1T9kdERKQmCuIiIiJiqnXr1hlV7bZt22LKlCmIiorCvHnz0L9//4rHsCt6ZGQkBg4ciOeee84I7TZ83G+//Yby8nLMmTMH/fr1M26/8847MXXqVMTHx5uyXyIiIjVREBcREZFml5aWhldeeQWDBg3CkCFDsHPnTrz55ptGt3P+OXLkyIrH3nTTTfjqq6+McH7NNdfgySefxF133VVx//PPP4/NmzcbY8m3bdtm/L5w4UKjqzqD/TnnnINOnTrh2muvRXFxsUl7LCIi8h+L1Wq12v0uIiIi0uQefvhhPPLIIzj66KPx+eef16tq/cEHHxiBnGPI/f39D7u/qKgIgwcPxscff2xsOysrC2+//TZOPPFEnH766ZXGl4uIiJhBFXERERFpdldffTUee+wxJCUloXfv3rjsssvwxx9/GN3L6zJ8+HCja3rV2dFtWDE//vjjjTA+f/58Y6I2X19fnHnmmcbvIiIiZlMQFxERkWbXunVrYyK1rVu3YtasWfDz8zOCcvv27XHPPfdgw4YNNT6XXc45E3p0dPRh93Giti+++MII+VRWVoaSkhLj7/yTv4uIiJhNXdNFREQcVFhShtyiUuQVlRp/5hf/9/uhnzLwf6p+3hb4ensd+vHxqvy7txf8fA797ufjhWA/H0SF+iPA1xuerrCwED/88AM++ugjY/K1f/75x+h+vmzZMowbN86YOf2vv/7CrbfeipNOOsnoem6PX2m4jvjdd99trB1O119/Pfbu3WtM8HbhhRfi/PPPNyZxExERMZOCuIiIeLyDOYVIyCjA/oqffOPPpKxC5BSWVITu0vKm+19mWIAPosMCEB3qf+jn378zpEeHBiA67NDtoQG+8ASJiYkICQnB9u3bjTDNydg49rtjx464+OKLcdtttx02Pvydd97B3Llz8d1331XcdvDgQVxwwQVYvny5MUacIT8oKMiEPRIREfmPgriIiLi90rJybDuYi+0Hc7Hv35BtC9yJmQUoLKl7XLKzCPH3QefoEHSPCUG3mFB0jw1F95hQ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EBYVi+yUJLiSEZPPx6izL9DyZCIi4txd0/39/Y0g1r59e1x33XUYP348ZsyYUWOVmF1AWUm3l5OTg/PPPx/BwcFo06YN3njjjRpfr7qu6Rs2bMCkSZMQFhaG0NBQHH300dixY0eNX76vuOIKdOzYEYGBgejevbtREavLggULMGzYMGN/4+LicM8991RU/rk/vJ/bsfUQYDttVq5ciSFDhiAoKMioIG/ZsqXStn/88UcMGjQIAQEB6NSpEx555JFKvQq4vbfeegunnnqqcYyeeOKJatv45ptvomvXrsZ2YmJicNZZZ1XcV15ejqeeeqpiv/v374/vvvvusC62v/76KwYPHmzs5wcffGDctnnz5kqv89JLL6Fz5841ds1dvHix8d5zf1u0aIETTjgBGRkZDrWDj7vwwgsRFRVl3M/94YWe+li0aJFxDvD57EFx0003IS8vr+L+gwcP4pRTTjHuZzs+//zzOs8x7h9v4/46ct79/fffmDBhAlq1amUEvTFjxmDVqlWVKsF0xhlnGNu1/V61azqPF3uZtG3b1nhPeN+sWbMOa+v06dMxbtw445jzmP71119oiOeff944vyMjI42LarzoY8OLbazY8zPK83D48OGVjkdaWprxOeb9bEffvn3x5Zdf1vhaPEf27NmDW2+9teJzY2/27Nno2bOncWGCF/zY86ImtvNw5syZ6Nevn/EZGDFiBNavX39Yl3f++9SrVy/jeO7du7dS1/R3330XrVu3No67vdNOOw2XX355ja9f12e8KZ3e5XS8f8L7iAyIhLOxWIGJf+SY3QynYPXQCeoi4o6Cq/Dx9cPJN96B0edcqBAuIiKuN0ac4aa4uH6Vmeeee84ID//8848RcG+++WbMnTvXoecmJCTgmGOOMb5U//HHH8YXYn5hrql7PL9gM9R8++232LhxIx588EH83//9H7755ptaX+Pkk0/G0KFDsWbNGiMUv//++3j88ceN+xnAR44ciauuusoIC/xhALS577778MILL2DFihVGhdn+C/2ff/6JKVOmGPvM9rzzzjtGYKgathnQGNrWrVtXbSDgthk4GdoYAhjWeFxsGH4/+eQTvP3220aAZPi56KKLjAsI9nj8n376aWzatMkI8gwXVYMqf7/ggguqPVYMr8cdd5wRdBgGGYoZenkBxJF2PPDAA8Zx4AUBtoHHmmHWUQzC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Tsg1XQghRIkho2xZq9CmtftUD62cb52Pcv69bc3MtG1Lltj2Zcucq7sVgD26oC3cFSqXtZoNK1mthpWd0l3rj49WuoUQQojigRRxIYQQJZ4ytWpZmc6drXLnzjsEg+N95ijl25cute1Ll/3+/z8+OevXW+6mTTuhrGfs0qo2CnWVmuV//1vjj781//jUqGAVqpTd6fsLIYQQouiRa7oQQgiRB15uruVmZVlOVpblbtxoORv5/0bL3ZhludlZlpOd/fu+9Jxc83JyzHJybE2r7rbGq2MZGRlOJ+dv6dIZTsnm9WDlKpS2shXKxP8tX8bKV/r9uBBCCCFKNlLEhRBCCCGEEEKIQkTRW4QQQgghhBBCiEJEirgQQgghhBBCCFGISBEXQgghhBBCCCEKESniQgghhBBCCCFEISJFXIgCYK+99rJHH300z3OIojx27Fj3/yVLlrjvX331lRUnLr74Yjv99NOtOPPRRx+5sl+/fn2xkJuCICiLBUVUGT/yyCPthhtuKNC0CCGEEEIUNVLEhUigXKIw8ClXrpy1atXK7rnnHvvtt98K7JlNmza15cuX23777WfFiccee8xefPHFok5GsYMyq1Gjxg6/z54926644grbE0gnA4gouUYmIfY0ohg9f/31V+vVq5dVq1atwPvh4tj2k43RecFLqBi/a9WqVSwXVkTRIEVciAT07NnTKcYLFiywG2+80e6++2576KGHCux5pUuXtgYNGliZMmUsHdi2bVuk86pXr57vwUokp27dulapUqWiTobYQ/ANjsk+9HvpQnH1GkonI1VxVIhEwTB8+HCbPn26ffbZZ26uw1gu/p/evXvb999/n69r3n//fafAv/POO8VyYUUUDVLEhUhA+fLlnWLcvHlz++tf/2o9evSwcePGJXWdxT2blfQgWVlZdu6551rlypWtcePG9tRTT+Vrkjl37lw7+eSTncW6atWq1q1bN1u4cGHC69etW2fnn3++U+QqVqxo++yzj73wwgux4z///LOdc845TmnGWnvaaae5Z4ZdzAcOHGiNGjWyNm3aWL9+/ezQQw/d4VkHHHCA8xAIXueTm5trDz74oPMioAybNWvm7hk1HUxAO3Xq5MqMc7p06WI//vijRYXn33///bb33nu7ciCtb7zxRtw57777rrVu3dodP+qoo+KeDygfHTt2jPuNySuT2CDPP/+8tW/f3uWzYcOGds0118SOPfLII7b//vu7fODtcNVVV1l2dnYsj5dccolt2LBhB4UnPFH+6aefXBlVqVLFyQFlt3Llyh3S+tJLL7lrmUz16dPHyV5+Wb16tZ1xxhnOEID8+PLu8+2339oJJ5zg0lK/fn278MIL3TXBSUjXrl1dvdWuXdvJbjJ5pcwpe6hZs6Yrg2D7oR7/8Y9/OBmhHaaTQliSYLLof5A7ZCz420033RS32lOQXkGFbURMV7Zv327pTnEvY2Gub27btq1TFulj6YNLCrujDTE/qFevXr7LlLlA586d02phRaQ3UsSFiNgp53fywQo6iuCXX35pt956q11//fU2adKkSNcuXbrUunfv7pS8KVOm2H/+8x+79NJLk06E77jjDps3b56999579t1339nTTz9tderUiQ1Kxx9/vFPmsYB/+umnTpli1T+Ypw8//NAyMzNdGrHootjPmjUrTpnCOPDf//7XzjvvvITpuO222+yBBx6IpWfkyJFOaYuSDvKGUn/EEUe4Z8yYMcO5eeVngoASPmLECHvmmWdcWv/2t7/ZBRdcYB9//HHMEHDmmWfaKaec4owef/7zn13d5BfK9+qrr3bp++abb5zSivHBp1SpUvb444+7NLDyQB2iWAKDdFjpCSo8QWUUJXzt2rUu/dTLokWLnKU+CPXD/m7qjA/nUgf5ZcCAAU7Rp+xPPPFEV/88G1iZO/roo+1Pf/qTffHFF07pxiDA+T6bNm2yv//97+44skQZoNiTjzAYJ9588033f2SOMmCbgw9lhhFj5syZzrCD4Sdq2xHRYbLofzDi0Nb87/Pnz3dtlT7loIMOcn3RJ5984uQNuaRd034POeQQmzx5ctx9f/nlF9fG6Dcxir3yyis7PBuZov1hPKQtIF9ff/110rRyH0AGSScG0WRGRMA4dfDBB7s8kB/6LNIVXnVGVjkPAxRtE3n0IT0YjLgHaaQckO+g6yptD8NVhQoVXP9GHxPuK1q2bOm2OZE20hWENHDOqaee6mT+8ssvz9NIlRcYSzBaYQClviiP6667zh2jvDBq0if6BkAf2qJvVMSgN2TIkLj78tu9995rF110kSsHf/vMLbfc4oyalF2LFi1cvx9Wgu677z6n0FCGfn8bNnT++9//dkohZbjvvvva0KFD88xnFKPf//73P2cIx5hHuVLH9Cc+48ePd7LLMxkr6auChm3ySvmTNwyQeMf5+HVPf0udcs5ZZ53l3L3puygvrqXsc3JykuYjSlviXoMGDXLjP2VI3T777LNx5zBO0y7IC/lkzpEXyAJ1PG3atLi2lCrfUWQlStsPk8oA//bbb9uBBx7o8oecMVYF50LhNoSsNmnSxP0WhHJhXIpi3A+7pqcyetNGr732Wmc8Jz1hw70QSfGEEHH07dvXO+2009z/c3NzvUmTJnnly5f3brrpJvfbEUcc4V1//fVx13A+1/k0b97c69mzZ9w5vXv39k444YTYd5rfmDFj3P8XL17svn/55Zfu+2233ebtvffe3rZt2yKl+ZRTTvEuueSShMdeeuklr02bNi4vPlu3bvUqVqzoTZw4MZbn+vXru9+DHHDAAd4999wT+066Dj300IRltXHjRldOzz333E6lY82aNa4MPvroI29n2LJli1epUiXvs88+i/v9sssu884999xY+tu1axd3/JZbbnHPXbdunft+1113uXwH+ec//+nq1KdRo0Ze//79I6dt9OjRXu3atWPfX3jhBa969eo7nMczeBZ88MEHXunSpb2ffvopdnzu3LkurbNmzYqllTxT9j4333xzXB1FgXvefvvtse/Z2dnut/fee899v/fee73jjjsu7pqff/7ZnZOZmZnwnqtWrXLHv/nmm4QyPnXq1Lhy96F9de3aNe63Qw45xNWTKDjCMunXT4cOHZws/vDDD66NfvXVV94zzzzj6vX77793clOhQgXvxx9/jF1LP0cbmjFjhvfFF194nTt3du3cl23o0aOH67dmz57t7nPjjTe6NsIzEoHMk57Jkyd7y5cvj51HH1SlShXvwgsv9L799lv3gWHDhnnvvvuut3DhQpeOww8/PK7/9fNHW6HPoW1169bNpdWnffv23gUXXOB99913Lo2vv/66y79fXmXLlvUOPvhg1+eQz06dOsVd/9Zbb7lznnrqKddOhgwZ4tr0lClTYueQhnr16nnPP/+8S+uSJUu8N998M9a2yOv69esj9zPVqlVz+aY+Zs6c6T377LPuGOXVpEkT159zTz5AukuVKuV+53nki7rib7Bf4r4PP/ywkwM+fr/w6aefurY9btw4N4YMHjw4dt3LL7/sZIO8ce8BAwa4+wT7V85p2LChy/OiRYvc31q1ankvvvhi0ny+8cYb7rwFCxa4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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA6QAAAGhCAYAAAB27XlHAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQAAwbhJREFUeJzs3QV4FFcXBuBv464kRAjursVapC2lLdRdqbt7/7o7dXdX6m60tEihUNw1IULcPdn/+YZuugmRDSSZle99nrRkdzN7d3Y2mTPn3HMtVqvVChEREREREZEO5tXRTygiIiIiIiJCCkhFRERERETEFApIRURERERExBQKSEVERERERMQUCkhFRERERETEFApIRURERERExBQKSEVERERERMQUCkhFRERERETEFApIRURERERExBQKSEVEGnHWWWehe/fu9W4rLi7Geeedh7i4OFgsFlx11VVwJRzznXfeCWf122+/GWPk/8U5PwOeTPtDRKR9KCAVkXreeOMNIyjg159//rnH/VarFUlJScb9M2fObJcxpKWlGYHT8uXLHf6ZVatW4fjjj0e3bt0QEBCAxMRETJs2DU8//XSbjev+++839s/FF1+Mt99+G2eccUajj9u+fXvdPmzs68EHH2yzMYlnWLBggfGZyM/Ph6tav349brjhBgwfPhyhoaGIj4/HjBkz8Pfffzf6+NTUVJx44omIiIhAWFgYjjrqKGzdurXeY1JSUnDXXXdhv/32Q2RkJDp16oQpU6bg559/3mN7v/zyC8455xz07dsXQUFB6Nmzp3GBKT09HWbKzMzETTfdhCFDhiAkJMT4/dW7d2+cffbZe/wOtv/93NjXokWL6h7b8D7uw8mTJ+Obb74x4VWKiDTNp5n7RMSD8aTovffew/7771/v9t9//x07d+6Ev79/uz03A1KeZDIbwZNXR07Wp06diq5du+L88883Mpg8UeXJ2ZNPPonLL7+8Tcb166+/Yty4cbjjjjscevwpp5yCww8/fI/bR4wY0SbjEc/BY5yfCWbpGKB1hJdffhm1tbVttr1XXnkFr776Ko477jhccsklKCgowIsvvmh8pr7//nscfPDB9aoR+JnmY/73v//B19cXjz/+uBFQ8UJVdHS08bgvvvgCDz30EI4++mjMmjUL1dXVeOutt4yLUa+99poR1NnceOONyM3NxQknnIA+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HfqsiYh0BAv/03ioKiIizo7ZDpa+Ntatsz2wYQ8zO5x/ZxaWj7MMl2WvbNIiIiIirktzSEVExCGcz8cSUpbaioiIiLQFzSEVEZFmsUkR53qygyzne3ItWREREZG2oAypiIg0iyXBbAzFbrHvv/++0URJREREpC1oDqmIiIiIiIiYQhlSERERERERMYUCUhERERERETGFAlIRERERERExhQJSERERERERMYUCUhERERERETGFAlIRERERERExhQJSERERERERMYUCUhERERERETGFAlIRERFple7du8NisdT7evDBB+vu3759OyZNmoTg4GDj//ze3syZMzFnzhwTRi4iIs5GAamIiIi0KC8vD8XFxXXf33333UhPT6/7uvzyy+vuu/baa5GYmIjly5cjPj4e1113Xd19H374Iby8vHDcccd1+GsQERHno4BUREREGlVdXY1vvvkGJ5xwghFYbtmype6+0NBQxMXF1X0xG2qzbt06zJo1C3369MFZZ51lfE/5+fm49dZb8eyzz5ryekRExPkoIBUREZF6Vq1aZWQ5u3TpgjPPPBMxMTGYO3cuhg0bVvcYluhGR0djxIgReOSRR4zg1YaP+/nnn1FbW4sff/wRQ4cONW6//vrrcemllyIpKcmU1yUiIs5HAamIiIggJycHTz75JEaOHInRo0dj69ateO6554xyXP5//PjxdY+94oor8MEHHxhB6oUXXoj7778fN9xwQ939jz76KNavX2/MNd20aZPx/bx584wSXga4J554Inr27ImLLroIlZWVJr1iERFxBhar1Wo1exAiIiJirjvvvBN33XUXDjjgALz77rutymK+9tprRmDKOab+/v573F9RUYFRo0bhzTffNLZdUFCAF154AYceeiiOPvroevNPRUTEsyhDKiIiIrjgggtwzz33ICMjA4MGDcLZZ5+NX3/91Si7bcnYsWONkt2G3XRtmEE95JBDjKD0t99+Mxoa+fr64thjjzW+FxERz6WAVERERJCQkGA0HNq4cSO+//57+Pn5GQFjt27dcNNNN2HNmjVN/ixLcdk5NzY2do/72NDovffeM4JdqqmpQVVVlfFv/p/fi4iI51JAKiIiIvVMmDABL774opEtZcMiBpxsVMRmRwsXLsQTTzyBFStWGPNMWYJ79dVX4/TTT0dkZGS97XBWEDOvjz/+eF0X3okT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/e9N69atbRlS37/+9a/NUUcdFXXOpEmTrHJEGR522GHmL3/5S6AlauDAgbb8W7RoYb773e9aufSzYcMGM2rUKOs+SblSxwsXLoz8Pm3aNCu7PLNly5bmrLPOivy2detWm1fKn7wNHjzYrFq1KvK7q3ssYdQp55x99tnWDRbLI+XFtZQ9kziJCNOWuNdNN91kfvjDH9oypG4feOCBqHOKi4ttuyAv5PPNN99MWn7IAnU8d+7cqLYUlO8wshKm7cdCW+zXr5+tJ8p1wIABVlYd//znP80xxxxj84ecXX/99WbPnj0J2xCy2r59e/udH8olOzs76t5hXXZpV8gt7Zd8019+73vfM9u3b7e/00Z/8YtfmPfff9+mh3NEJUGUXSGEEELUfh5++GGvsLAw8nn27NlE2vd69uzpTZ8+3Vu9erX32WefeW+99ZY3YcIE75133vFWrlzpXX311V6DBg289evXR64dPHiw16tXL+/111/33njjDe/444/38vPzvbvvvjtyzkknneSddtpp3qJFi+x9xowZ47Vo0cI+Ix7FxcU2PTNmzPA2btwYOe/888/3Gjdu7J133nneu+++aw948MEHvRdffNFbs2aNTcdxxx1n0xWbv/79+3tz5szxlixZ4p1wwgk2rY4jjjjCO/fcc71ly5bZND711FM2/6686tev7/Xp08ebP3++zWe/fv2irn/22WftOffee6+3YsUK78477/RycnK8WbNmRc4hDa1bt/Yeeughm9Z169Z5kydPtt9zDXndtm1bqDp8+umnvSZNmth8Ux8LFy70HnjgAfsb5dW+fXvvhhtusPfkANKdnZ1tv+d55Iu64q+jY8eO9r533HGHlQMOuPHGG7158+Z57733njd16lSvTZs23q233hq57rHHHrOyQd649/XXX2/vg2z4zykqKrJ5Xrt2rf3bvHlz75FHHkmYz2eeecaet2rVKu/NN9+0ctSjRw+vvLzc/r59+3avc+fOtj5fe+01e96TTz5p6wmef/55Ww/XXHONt3TpUlunN910U+T+p59+unf44Yd7c+fOtb+deuqp3iGHHOKVlpZG1f3JJ5/sLV682Hv11Vet7J5yyineiBEjrCxNmzbNy83N9Z544omE+QjTlih7ygMZIh8333yzra/ly5dH8tqqVStv9OjRVvZ5LnlHfiibeCALF110kW0T/rYU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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "analysis.employed_per_sector_2024()\n", + "analysis.self_employed_per_sector_2024()" + ] + }, + { + "cell_type": "markdown", + "id": "122f46e6", + "metadata": {}, + "source": [ + "# Long-Term Trends in Biggest Sectors\n", + "\n", + "Analyzing long-term trends within the most influential sectors provides deeper insights into structural shifts. The \"Service activities\" sector stands out as the dominant employer, having grown steadily over the past 25 years. Sectors like \"Public services, education, health\" and \"Trade, transport, storage, accommodation and food services\" have also expanded, albeit at a slower pace. The rise in \"Business services\" reflects the growing role of knowledge-based work in the German economy. Conversely, \"Manufacturing\" has experienced a slight early decline followed by stabilization, illustrating the broader deindustrialization trend in high-income countries. Other sectors like \"Education\" and \"Private households\" remain relatively small and stable." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "b8c873e1", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAloAAAHHCAYAAABnS/bqAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQAApwpJREFUeJztnQd8FNUWxk82u+kJhF4EFOmIYgNR7AgioogVfYqNZwEb2LBhx4YNFey9IKI+xV6wo9gVEQUEQemQXje7837f2b3D7GaTbEI29fvrMO1m5k7ZmW/OOffcOMuyLCGEEEIIIbWOq/Y3SQghhBBCAIUWIYQQQkiMoNAihBBCCIkRFFqEEEIIITGCQosQQgghJEZQaBFCCCGExAgKLUIIIYSQGEGhRQghhBASIyi0CCGEEEJiBIUWaVLExcXJ9ddfX9/VIDEmPz9fzj77bOnQoYNe84svvri+q0QaKHge4B4hpL6g0CINmqeeekofks6hXbt2cvDBB8s777wjjZ2vvvpKXwTZ2dnSEHn77bcbpHC99dZb9d4477zz5Nlnn5VTTz1VGjJz5syR//znP9KzZ0+9hw866KAKy37//fdy+OGHS0ZGhqSnp8vw4cPlp59+KlfO6/XKDTfcIN27d5fExEQd33zzzVJWVlbjbUZiy5Ytcuedd8oBBxwgbdu2lZYtW8o+++yjxxSJkpISueKKK6RTp06SnJwsgwcPlg8++CCkTGFhoTz44INaj44dO2qddt99d5k1a5b4fL5K6/P888/rOUxLS5P6JDc3V2655RbZa6+9pEWLFnoNunXrJieeeKK89dZbIWU/+eSTcs8x5/DSSy/ZZXfccceQdampqTJo0CB55pln6uEoSa2Avg4Jaag8+eST6IvTuvHGG61nn33WeuaZZ6w777zT6t+/vy5/8803Q8oXFRVZXq/XaizgWHAcK1eutBoiEydO1Po1NAYPHmztt99+VmPhwAMPtNLS0qyDDz7YyszM1PlIfP/991ZSUpLVs2dP66677rLuuOMOa8cdd7QyMjKspUuXhpQ94YQTrLi4OOuss86yZs2aZY0fP16v1YQJE2q8zUjgN+bxeKyjjz7auvfee60HHnhAjwP7uu6668qVP+mkkyy3221deuml1sMPP2wNGTJE5z///HO7zK+//qp1HzZsmNZn9uzZ1jHHHKPbPO200yqsS15entWpUycrNTVVh2jA8wDPhdpk2bJlVvfu3a34+HjruOOOs+677z7r8ccft66//npr0KBBehx4VhkWLFigyy688EJ9joUPq1atsst269bNGjhwoL0O56dXr17694888kitHgepGxreE5SQCELr22+/DVm+detWffiffPLJVmOmOQotn8+33S++nXbayRo1alSV5bAf7K++Wb16tV0PfCRUJLSOOOIIFWKbN2+2l61du1ZF2tixY+1lixYt0uty7bXXhvz9lClTVMD8/PPP1d5mRfz1118hQgD4/X7rkEMOsRITE638/Hx7+TfffKP1wn3tvAY777yzCi7Dpk2brMWLF5fb1xlnnKF/DyETiSuuuMLq3bu3dcopp0QttGobCLdddtlF9//FF19ELPPee+9Zb7/9djmhNXfu3Cq3D6EVfm9v3LhRr1ffvn1r4QhIXUPXIWmUwH0Bt4Tb7a4yRgtme5j3k5KSZOedd5aHH344YtxGUVGRXHjhhdKmTRt1ZRx11FHy77//Rtwmlp955pnSvn17dRn0799fnnjiiXL1nDlzpq5LSUmRzMxMrccLL7yg67DNyy67TKd32mkn21WwatWqCo972bJlcuyxx2psEo5nhx12kJNOOklycnJCyj333HOy55576jlq1aqVllmzZk257X3zzTdyxBFHaN3goth1113lvvvu03Wnn366unfMeTWDoaCgQKZMmSJdunTRc9C7d2+56667oMrKXZNJkyapywfnAmXfffddXQeXCeqJ8w231oABA+z9R8K4YFauXKnuGec5M+uwzWuuuUY6d+6s5x0uHjB37lz7nOAaw5WH6+gExwyX1OrVq+XII4/UaWzHnIdff/1VDjnkED1XcBOZa1kVOEcuV9WP288//1yGDRsmrVu3tpfBtXbggQfK/PnzNTbNlAO4rk4wj/PvdOtFu82KwL2JY3WC8zxmzBh1E/7111/28ldeeUXi4+Plv//9r70M9+lZZ50lCxcutO9BnH/cC+Ecc8wxOv79998j3vv33HOP3H333eV+95UR6bdu7snXX39ddtllF/s3bO7LysB9tHjxYrn22mtlv/32i1gGLtGRI0dKbQGXbZ8+fWTFihW1tk1Sd0R/txJSj0BIbN68WV8iGzduVAGDFwRelpXx448/amwKXiyIZ0H8x4033qgPrnDwkn355Zc13gcx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mqxCWZ9TrH0F5hR5NWgdCUKNyHK7XCqkWiR7tE9AuP7gAoQla/feO0mf7l2lW5fOaiaHFQUdl2NYunSppKenyzvvvKN9b6ILqS+++EIfJkcffbT2UgAhtvfee8uHH35YroeF0aNH64MKyfief/75cscIa83ZZ58tbdu2VffFIYccIj///HOF5wTbAbvvvrvW86CDDtL5008/XcaMGSO33HKLdOrUSXr37q3Ln332We3CCseA4zn55JND+iA1ViP0IYpyKSkp+oB0Ck3U5+CDD9ZtoI44D999912Ia+H111+Xnj17asJB9O6wZs2akHrPmjVLdt55ZxUmqBvq5QR1QJmjjjpKe5KYMGGC7hNkZmbqehxjNOCaX3/99dqFGK4XzseFF16o63C+/v77b+2RAtt0un3nzZsn/fv317+B1WvGjBkh28Wym266SXvNwHmAewRcccUV2uE4zl337t3l2muvLScUb775ZmnXrp2eQ1zvK6+8Unu6cIKeMfDSxzns06dPSG8bFVkOhg4dque/devWcuSRR+p96eSff/6RcePGqRsH5xXX+JtvvrHXv/nmm3rvYp9t2rSRY445xl6XlZWlx4rzj2NDt2zLli2z15trD8sFrinKHHfcceqOg6UI5wt/i3OPj5OKiOa3hG3deuut2l0bziGu7SOPPBJSZtGiRfq7wLHgOH/88cdKzx/uBVzjzz77LOS3VNVxR3OvRPPbDwe/RXQ1h+uE84oO6nGvGv73v//JHnvsoceH++yGG26QsrKyCn9DuFfR4wqWOcF5Qc8ufzu2Ha3rEL8r3Lf4/eK4YQE86aSTtKs+gN8ouuRD38eoD8o0aJAZnmw/OTk5eNPqmMSeoqIia8mSJToGfr/f8hUUVDp48/Kt/Kwca/OmLOvftVusFas3WUtWrLd+/nNtlcPiZeus3//aYC3/e6P19z+brX/XbbE2bsyytm7JsvKKSq0Sr8/y+f1R1//JJ5+0WrRoYc8vWLBA759dd93Vev/9963ly5dbW7ZssX766Sdr9uzZ1q+//mr9+eef1jXXXGMlJSVZf//9t/23I0eOtHbbbTdr4cKF1nfffWftu+++VnJysnXPPffYZYYNG2aNHj3a+vbbb3U7U6ZMsVq3bq37iMSiRYu0Ph9++KG1bt06u9z48eOttLQ069RTT7UWL16sA3j88cett99+21qx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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "analysis.biggest_employment_sectors_timeline()" + ] + }, + { + "cell_type": "markdown", + "id": "bcf0680d", + "metadata": {}, + "source": [ + "# Economic Sector Grouping\n", + "\n", + "Grouping sectors into the three classical economic categories—primary, secondary, and tertiary—offers a macroscopic view of Germany's employment structure.\n", + "The resulting distribution is characteristic of a mature, service-oriented economy. The overwhelming dominance of the tertiary sector highlights the central role of services in modern labor markets. Nonetheless, the substantial share of the secondary sector underlines Germany’s continued industrial strength, particularly in high-value-added manufacturing.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "c127e49e", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA18AAAKSCAYAAAAtR2G3AAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjMsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvZiW1igAAAAlwSFlzAAAPYQAAD2EBqD+naQAAjBRJREFUeJzt3QV4k+fCxvE7dW/x4lrcN8aACYNtzH3M3d2Znbm7nPmZnvnO3H1suDPcrWiRuku+63n52rXQQiXNE/n/rqsrTSN30qbLnUdel9vtdgsAAAAA0KhCGvfqAQAAAAAG5QsAAAAAvIDyBQAAAABeQPkCAAAAAC+gfAEAAACAF1C+AAAAAMALKF8AAAAA4AWULwAAAADwAsoXAAAAAHgB5QuAzxg/frxcLpfzGZ5lHtd7773Xys9w5MiR6tu3r7xhzZo1zu2//fbb8jZv3k/I+X02P2sA8CeULyBImRen5oVLTR9Tp061HTFofPDBB3r22Wdrff5OnTpV/JxCQkKUlJSkfv366dJLL9W0adOs5fImX87W2Pb0vL388sttx/NbEydO1JFHHqm2bdsqKipKHTp00LHHHuv8rjWWYP49BoKVy+12u22HAGCnfF1wwQW6//771blz592+f8QRR6h58+ZezWRGSw455BD98ccfzihCsDjmmGO0YMECZ9SmtuWrSZMmuummm5yvs7OztXjxYv3vf//T5s2bdcMNN+jpp5+ucpmCggKFhYU5H42VyygrK1NRUZEiIiKcYmiYn+W2bduc6/KUmrKZ/6UVFhYqPDxcoaGh8qbGuJ/VMSXrsMMO07nnnrvb97p376799ttPwaCkpMT5MEWpocxz57TTTtPAgQN1+umnO8+v1atX66+//nJ+l8zfpMZQn+cYAP9W+/8LAwhI5p3efffd13YM1JF5d/7ss8+uctpjjz2mM888U88884xSUlJ0xRVXVHzPEy9Q98SUu/LC1di3tbdiYvP2vcWUrF1//sGmrm8m7G0KY+/evZ0Rf/N7XFlaWpr8iSmk5k2QXe8HAN/AtEMAtVpD8+STT+rFF19Uly5dFBMTo8MPP1ypqanOSMMDDzygdu3aKTo6Wscff7x27Nix20iNeYf3559/dt5ZNi+OzQudzz//vNbvSu+zzz7O9ZvROPOic8OGDRXff+utt5yMc+bM2e2yDz/8sDMCUn7+8nU58+bN08EHH+zcl27duunTTz91vv/nn39q6NChzm316NFDv/76627Xaa7rwgsvVKtWrRQZGak+ffrozTffrHbt0yeffKKHHnrIeXzM/R49erRWrFhRcT6T57vvvtPatWsrpo6Zx6s+TOZ3331XTZs2dW6z8sSGXdd8mdGy66+/3rktcx9atmzpjKbMnj17r7nK79tHH32kf/3rX04RNI9jVlbWHtftzZo1S8OHD3dymtHWV155pdqpsLuOAux6nXvKVtOar99//10HHnigYmNjnWma5vfUjBZWt4bI/HzOP/9853yJiYnOCHFeXl6tfw57up85OTlOhuuuu263y61fv975XX3kkUfkKWYa6lFHHeWM5Jjb7d+/v5577rlGfWzMi3/zN6Fr167O75b52dxxxx3OiGR1fxfMz9W8AWQeLzN9tvznbP4+mK/N88Y8/3d9fte05uu9995zRv/M76S53wcddJDzt2dPVq5cqSFDhlRbWMxzozJTbMxUQfO8N9nM34HLLrtM6enpu132hx9+cP7OxMfHKyEhwbmN8mmMe3vum9J30UUXOddvbmfAgAF65513avz7bDKVP+aLFi3a4/0FYA8jX0CQy8zMdKZKVWb+Z96sWbMqp73//vvOdLJrrrnGKVePP/64xo4dq1GjRjkvlm699Vbnhdm///1v3XzzzbuVkeXLlzvTesyalPPOO88pTKeeeqp+/PFH50X/3qZHmhct5kXpli1bnBePkyZNcl6MmReBp5xyiq666ion46BBg3bLbV7kmIJQzrxIMi/6zPQik+Hll192/m3OawqJyWhGkJ544gnnuk3JNC+eDHP7+++/v/MYXX311WrRooXzAsu8SDLlw1y+skcffdQZDTKPiXmszeN21llnVazNuvPOO53TzQtvM2JlxMXFqb7MZU888US98cYbzgsw8wKxOuY+msJp7oMpwtu3b3fWvJgX3YMHD65VLvMC27xYNffNvLDe0zvt5jE3JcD8zpxxxhlOKTUjc+YypsjWRV0fM1OgzQiveePAvGDPz893fk9HjBjhlM1dy67JaEqT+X0z33/99dedF+BmZHFv9nY/y38+H3/8sTM1tPLUyA8//NApzOb3ozYjjbs+bw3zAr/85/DLL784v+etW7d2yl5ycrLz8/32228ryl9jPDYXX3yxUxLMc8dMjTW/6+b85ra/+OKLKtdn/maY55opL+ZNFVMizDorU1hNYbvyyiud85nLm9teunRpxXTW6tx3333O/TDl10ypNo+FuX1TMM0bRjXp2LGjfvvtN+d3yrxRsicma/nfpWuvvdaZnvjCCy84f4/M3yUzTdEw5zE/c/McvP32252/VeY85m+euc97+j02Pwfzd8s8PuY5ah5z8yaUKb4ZGRm7lXfz99T8Tph1n6Z8mTdgAPgos+YLQPB56623zLBItR+RkZEV51u9erVzWosWLdwZGRkVp99+++3O6QMGDHAXFxdXnH7GGWe4IyIi3AUFBRWndezY0TnvZ599VnFaZmamu3Xr1u5BgwZVnPbHH3845zOfjaKiInfLli3dffv2defn51ec79tvv3XOd/fdd1e53TZt2rhLS0srTps9e7ZzPnNfyx188MHOaR988EHFaUuWLHFOCwkJcU+dOrXi9J9++mm3y1900UVO7m3btlV5PE8//XR3YmKiOy8vr8p96dWrl7uwsLDifM8995xz+vz58ytOO/roo53HqLbMec1lavLMM884t/HVV19VnGa+vueeeyq+NlmvuuqqPd5OTbnK71uXLl0q7m9NP8PKj/lTTz1VcZp5TAYOHOj8fM3PufLvpPmd29t11pSt/Pe18s+s/Ha2b99ecdrff//t/LzPPffcitPM42Mue+GFF1a5zhNPPNHdrFmzPT5Wdbmf5b9XP/zwQ5XL9+/f37mOvanpeWs+PvzwQ+c8JSUl7s6dOzuPUXp6epXLl5WVNdpjM3fuXOd8F198cZXz3Xzzzc7pv//++25/FyZPnlxxWvljEx0d7V67dm3F6a+++upuvwPlmcotX77cyW0yVf47sOt9rs4bb7zhXJf523XIIYe477rrLveECRN2ux5zmjnf+++/X+X0H3/8scrp5m9lfHy8e+jQoVX+du2apabf42effda5vvfee6/iNPP7M2zYMHdcXJw7Kyuryu97QkKCOy0tbY/3EYBvYNohEOTMVELzDnnlDzOSsyszQmSmGZUzU/MM82515XUX5nQzQlZ5WqDRpk0b5x3/yu/Qmw0DzDvBZpOI6sycOdOZemPe/a68jufoo49Wz549nSk75cx1bdy4scrCeDOSZaYynXzyyVWu17y7bEa6ypnpheZd6V69elXcr8r3cdWqVc5n87r3s88+c96ZN/82Iw/lH2PGjHHexS6f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kypZMlQD486USy7bkQCgRjlFObYjwE9QvmAfI18AqhG9fYE+LBun4WnR6u66StFh0bYjAUC18ngtg1qifME+NtwAUANXYZau2HKP7i6ep+aZ16l5dEvbkQBgNznFjHyhdihfsK8433YCAD6uf+p7+lhvqs3m89UlvpftOABQBeULtUX5gl1lZVIJ5QvA3sWnzdS7+fdqeNpB6pd0sO04AFAhn9cyqCXKF+xijjSAOgjJ36ZxW+7SVduiNDj+VNtxAKBix0OgNihfsIvyBaCOXO4yjUj9j55Jm6YDoi5SZGik7UgAglypu9R2BPiJoClf559/vk444QTbMbAryheAemq6eaJeSH1VJ7rOVNPIZrbjAAhipWWULzRC+dq6dauuuOIKdejQQZGRkUpOTtaYMWM0adKkulxN0PHG49apUyc9++yz8jslRbYTBJ1HJhRqyH9yFP9Illo+ka0TPsrT0m1V/6dRUOLWVd/lq9nj2Yp7OEsnf5KnLTlle7xe131Z1X48MWnngScLS9w654t8JTySpe7/ztGvq6pO0TDnu+Z75syjbkJzNuqOlQ/r1pL91TG+m+04AIJUiZtph6idMNXBySefrKKiIr3zzjvq0qWLtmzZot9++03bt29XMCguLlZ4eHidL+dPj5vJGRER4cVbdHvxtmD8ubZEVw2J0JA2oSopk+74vVCHv5enRVfGKTZi54Fsb/ixQN8tL9H/To1WYqRLV/9QoJM+ydekC2NrvN5NN8VV+fqH5SW66OsCndx753PmtVnFmrWxVFMuitUPK0p05mf52nJznFwul1anl+k/s4s189Karx+oiausWEeteFl92x+mO5sP1dyMabYjAQgyZe49v0EJ1HnkKyMjQxMmTNBjjz2mQw45RB07dtR+++2n22+/Xccdd1yV81188cVq0aKFEhISNGrUKP39999Vruubb77RkCFDFBUVpebNm+vEE0+s+F56errOPfdcNWnSRDExMTryyCO1fPnyiu+//fbbSkpK0k8//aRevXopLi5ORxxxhDZt2lRxntLSUt14443O+Zo1a6Zx48bJ7a76Iv/HH3/UAQccUHGeY445RitXrqz4/po1a5wXhR9//LEOPvhgJ+trr73m3KdPP/20ynV9+eWXio2NVXZ2tpXHbeTIkVq7dq1uuOEGJ7P5KPfZZ5+pT58+zoibGR176qmn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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "analysis.economic_sectors()" + ] + }, + { + "cell_type": "markdown", + "id": "88b8aaf8", + "metadata": {}, + "source": [ + "# Summary and Conclusion\n", + "\n", + "Germany’s labor market grew steadily from 1999 to 2024, with brief declines around 2003 and 2019. Employment shifted strongly toward contract-based work, while self-employment declined. Service sectors, especially “Service activities,” became dominant, and the tertiary sector now accounts for nearly 80% of all jobs. In conclusion, Germany has transitioned into a modern, service-driven economy while maintaining a strong industrial core." + ] + }, + { + "cell_type": "markdown", + "id": "28b14fda", + "metadata": {}, + "source": [ + "# References\n", + "\n", + "- [Persons in employment, employees, self-employed persons and family workers (domestic concept): Germany, years, economic sections\n", + "](https://www-genesis.destatis.de/datenbank/online/statistic/13311/table/13311-0001)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.13.3" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/2025_Research_Software_Engineering_2/.gitignore b/2025_Research_Software_Engineering_2/.gitignore new file mode 100644 index 0000000..a559f9e --- /dev/null +++ b/2025_Research_Software_Engineering_2/.gitignore @@ -0,0 +1,10 @@ +.DS_Store +__pycache__ +Thumbs.db +venv/ +results/ +.snakemake/ +*.swp +tmp/ +log.txt +workflow/report \ No newline at end of file diff --git a/2025_Research_Software_Engineering_2/.gitlab-ci.yml b/2025_Research_Software_Engineering_2/.gitlab-ci.yml new file mode 100644 index 0000000..5d37bfe --- /dev/null +++ b/2025_Research_Software_Engineering_2/.gitlab-ci.yml @@ -0,0 +1,45 @@ +stages: + - test + - lint + - snakemake + +test_project: + stage: test + image: python:3.12-slim + tags: + - public + before_script: + - python3 -m venv venv + - source venv/bin/activate + - pip install --upgrade pip + - pip install -r requirements.txt + script: + - pytest + + +lint_project: + stage: lint + image: python:3.12-slim + tags: + - public + before_script: + - python3 -m venv venv + - source venv/bin/activate + - pip install --upgrade pip + - pip install pylint + - pip install -r requirements.txt + script: + - pylint workflow/scripts tests + +snakemake_project: + stage: snakemake + image: python:3.12-slim + tags: + - public + before_script: + - pip install --upgrade pip + - pip install -r requirements.txt + script: + - snakemake --cores 1 --forceall + after_script: + - rm -r results diff --git a/2025_Research_Software_Engineering_2/.pylintrc b/2025_Research_Software_Engineering_2/.pylintrc new file mode 100644 index 0000000..46eb3c8 --- /dev/null +++ b/2025_Research_Software_Engineering_2/.pylintrc @@ -0,0 +1,2 @@ +[MASTER] +init-hook='import sys; sys.path.insert(0, "workflow/scripts")' diff --git a/2025_Research_Software_Engineering_2/CITATION.cff b/2025_Research_Software_Engineering_2/CITATION.cff new file mode 100644 index 0000000..cb0f36d --- /dev/null +++ b/2025_Research_Software_Engineering_2/CITATION.cff @@ -0,0 +1,35 @@ +# .cff +cff-version: 1.2.0 +title: SolarLytics +message: >- + If you use this software, please cite it using the + metadata from this file. +type: software +authors: + - given-names: 'Joaquin ' + family-names: Gottlebe + email: gottlebe@uni-potsdam.de + affiliation: University of Potsdam + - given-names: Flora + family-names: Grellmann + email: grellmann@uni-potsdam.de + affiliation: University of Potsdam + - given-names: Mirjam + family-names: Rupinski + email: rupinski@uni-potsdam.de + affiliation: University of Potsdam +repository-code: 'https://gitup.uni-potsdam.de/gottlebe/solarlytics' +abstract: >- + Solarlytics estimates the theoretical energy production of + German solar parks by combining area data from + OpenStreetMap with sunshine duration from the German + Weather Service. The results are compared to actual + photovoltaic electricity feed-in data from Destatis. +keywords: + - photovoltaic data + - Solarparc + - Sunshine duration + - Python +license: MIT +version: '1.0' +date-released: '2025-07-20' diff --git a/2025_Research_Software_Engineering_2/CONDUCT.md b/2025_Research_Software_Engineering_2/CONDUCT.md new file mode 100644 index 0000000..cee881b --- /dev/null +++ b/2025_Research_Software_Engineering_2/CONDUCT.md @@ -0,0 +1,134 @@ + +# Contributor Covenant Code of Conduct + +## Our Pledge + +We as members, contributors, and leaders pledge to make participation in our +community a harassment-free experience for everyone, regardless of age, body +size, visible or invisible disability, ethnicity, sex characteristics, gender +identity and expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, caste, color, religion, or sexual +identity and orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, +diverse, inclusive, and healthy community. + +## Our Standards + +Examples of behavior that contributes to a positive environment for our +community include: + +* Demonstrating empathy and kindness toward other people +* Being respectful of differing opinions, viewpoints, and experiences +* Giving and gracefully accepting constructive feedback +* Accepting responsibility and apologizing to those affected by our mistakes, + and learning from the experience +* Focusing on what is best not just for us as individuals, but for the overall + community + +Examples of unacceptable behavior include: + +* The use of sexualized language or imagery, and sexual attention or advances of + any kind +* Trolling, insulting or derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or email address, + without their explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Enforcement Responsibilities + +Community leaders are responsible for clarifying and enforcing our standards of +acceptable behavior and will take appropriate and fair corrective action in +response to any behavior that they deem inappropriate, threatening, offensive, +or harmful. + +Community leaders have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct, and will communicate reasons for moderation +decisions when appropriate. + +## Scope + +This Code of Conduct applies within all community spaces, and also applies when +an individual is officially representing the community in public spaces. +Examples of representing our community include using an official email address, +posting via an official social media account, or acting as an appointed +representative at an online or offline event. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported to the community leaders responsible for enforcement at +[rupinski@uni-potsdam.de](mailto:rupinski@uni-potsdam.de). +All complaints will be reviewed and investigated promptly and fairly. + +All community leaders are obligated to respect the privacy and security of the +reporter of any incident. + +## Enforcement Guidelines + +Community leaders will follow these Community Impact Guidelines in determining +the consequences for any action they deem in violation of this Code of Conduct: + +### 1. Correction + +**Community Impact**: Use of inappropriate language or other behavior deemed +unprofessional or unwelcome in the community. + +**Consequence**: A private, written warning from community leaders, providing +clarity around the nature of the violation and an explanation of why the +behavior was inappropriate. A public apology may be requested. + +### 2. Warning + +**Community Impact**: A violation through a single incident or series of +actions. + +**Consequence**: A warning with consequences for continued behavior. No +interaction with the people involved, including unsolicited interaction with +those enforcing the Code of Conduct, for a specified period of time. This +includes avoiding interactions in community spaces as well as external channels +like social media. Violating these terms may lead to a temporary or permanent +ban. + +### 3. Temporary Ban + +**Community Impact**: A serious violation of community standards, including +sustained inappropriate behavior. + +**Consequence**: A temporary ban from any sort of interaction or public +communication with the community for a specified period of time. No public or +private interaction with the people involved, including unsolicited interaction +with those enforcing the Code of Conduct, is allowed during this period. +Violating these terms may lead to a permanent ban. + +### 4. Permanent Ban + +**Community Impact**: Demonstrating a pattern of violation of community +standards, including sustained inappropriate behavior, harassment of an +individual, or aggression toward or disparagement of classes of individuals. + +**Consequence**: A permanent ban from any sort of public interaction within the +community. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 2.1, available at +[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. + +Community Impact Guidelines were inspired by +[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. + +For answers to common questions about this code of conduct, see the FAQ at +[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at +[https://www.contributor-covenant.org/translations][translations]. + +[homepage]: https://www.contributor-covenant.org +[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html +[Mozilla CoC]: https://github.com/mozilla/diversity +[FAQ]: https://www.contributor-covenant.org/faq +[translations]: https://www.contributor-covenant.org/translations + diff --git a/2025_Research_Software_Engineering_2/CONTRIBUTING.md b/2025_Research_Software_Engineering_2/CONTRIBUTING.md new file mode 100644 index 0000000..78ce1a4 --- /dev/null +++ b/2025_Research_Software_Engineering_2/CONTRIBUTING.md @@ -0,0 +1,74 @@ +# Contributing to SolarLytics + +First off, thank you for your interest in contributing to **SolarLytics**! +This project is part of the Research Software Engineering course at the University of Potsdam and aims to calculate the theoretical energy production of German solar parks using open geographic and meteorological data. + +Even though the project is currently maintained by a student group, we welcome all types of contributions and feedback from the broader community. + +--- + +## Code of Conduct + +This project and everyone participating in it is governed by the +[Code of Conduct](https://gitup.uni-potsdam.de/gottlebe/solarlytics/-/blob/main/CONDUCT.md). +By participating, you are expected to uphold this code. Please report unacceptable behavior +to [Mirjam Rupinski](mailto:rupinski@uni-potsdam.de). + + +## I Have a Questions +If you have a question or need clarification: + +- First, check existing [issues](https://gitup.uni-potsdam.de/gottlebe/solarlytics/issues) — your question may have already been answered. +- If you don’t find a helpful thread, feel free to [open a new issue](https://gitup.uni-potsdam.de/gottlebe/solarlytics/issues/new). +- Include as much context as possible (e.g., error messages, system setup, relevant versions). + +We’ll get back to you as soon as we can. + + +## What You Can Contribute + +We appreciate contributions of all kinds, including (but not limited to): + +- Suggestions for improvements +- Bug reports and fixes +- Code enhancements (efficiency, readability, modularity) +- Better error handling and logging +- Improvements to documentation and docstrings +- Workflow optimization (especially in Snakemake) +- Testing infrastructure + +Please feel free to open an issue or pull request if you notice something that could be improved. + + +## Before You Start + +- **Open an issue first**:\ + Please open an issue to discuss any major changes before submitting a pull request. +- **Keep your code clean and structured**: + - Follow a modular and well-organized file structure. + - Document all functions thoroughly with clear and complete docstrings. + - Catch errors gracefully and log meaningful messages. + - Design your code with testing in mind. + - Consider how your additions integrate into the existing Snakemake workflows. + + An example of code that can be used for orientation can be found [here](https://gitup.uni-potsdam.de/gottlebe/solarlytics/-/wikis/Coding-Style-Example). + + + +## Local Testing + +The project provides a suite of unit tests for the various module functions — check the `tests/` folder. These tests can be run easily using: +```bash +pytest +``` +When adding a new function, it is expected that an appropriate and comprehensive test is also created. This helps ensure the function remains reliable after future changes. + + +## Contributors + +Currently, we track contributors in the *Contact* section of the [README](https://gitup.uni-potsdam.de/gottlebe/solarlytics/-/blob/main/README.md) file. + +--- + +Thanks again for your interest and support! +— The SolarLytics Team diff --git a/2025_Research_Software_Engineering_2/LICENSE b/2025_Research_Software_Engineering_2/LICENSE new file mode 100644 index 0000000..15667f6 --- /dev/null +++ b/2025_Research_Software_Engineering_2/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2025 Joaquin Gottlebe, Flora Grellmann, Mirjam Rupinski + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/2025_Research_Software_Engineering_2/README.md b/2025_Research_Software_Engineering_2/README.md new file mode 100644 index 0000000..afddd22 --- /dev/null +++ b/2025_Research_Software_Engineering_2/README.md @@ -0,0 +1,193 @@ +# SolarLytics + +## Overview + +Solarlytics is a project for the Research Software Engineering course at the University of Potsdam. It aims to calculate the theoretical energy production of German solar parks. To do so, it queries the area of solar parks in Germany from OpenStreetMap (OSM) as well as the sunshine duration from the German Weather Service (DWD). The results will be compared with electricity feed-in by photovoltaics. + +This project investigates the following research questions related to the theoretical energy production of solar parks in Germany: + +**1. What is the spatial distribution and total surface area of solar parks in Germany?**
+     Using geospatial data from OpenStreetMap (OSM), we aim to identify the location and size of solar parks across the country. +
+ +**2. To what extent can theoretical solar energy production be estimated for the year 2024 by combining solar park area data with sunshine duration data?**
+     By integrating OSM data with meteorological data from the German Weather Service (DWD), we estimate the potential photovoltaic energy output for each region. +
+ +**3. How does the estimated theoretical energy production compare to the actual electricity feed-in reported by the Federal Statistical Office?**
+     Significant deviations between theoretical and real production values may point to inefficiencies, data limitations, or external influencing factors.
+     If significant discrepancies are observed are potential causes for discrepancies between theoretical and actual photovoltaic energy production? +
+ +**4. What are the temporal patterns of theoretical solar energy production throughout the year?**
+     We analyze monthly trends and investigate whether seasonal or interannual differences can be observed.
+     How do year-to-year variations in sunshine duration impact theoretical solar energy yield? +
+ +## Activity Diagram + +This is a short overview of the process with the four main components of the data processing of solarparc, sunshine duration and photovoltaic data and the subsequent analysis. More details can be found in the documentation under `docs\requirements.md`. + +![Alt-Text](/docs/UML_diagram_overview.png) +
+ +## Getting Started +### Requirements + +- **Python**    3.13.5 +- **git**      2.39.5 + +All additional Python package dependencies are listed in `requirements.txt`. + +### Installation + +#### Clone the repositpory +The repository can be cloned with the following command: +```bash +git clone https://gitup.uni-potsdam.de/gottlebe/solarlytics.git +``` + +#### Change directory + +```bash +cd solarlytics +``` + +#### Set up enviroment +The `requirements.txt` file can now be used to create an environment as follows: +Creates a virtual environment named `venv` using Python +```bash +python3 -m venv venv +``` +Activates the virtual environment, so any `pip` or `python` commands now use the local environment, not the global Python installation. + +```bash +source venv/bin/activate +``` +Installs all Python packages listed in the `requirements.txt` file into the virtual environment. +```bash +pip3 install -r requirements.txt +``` + + +## Usage +To run the complete analysis pipeline, simply execute: + +```bash +snakemake --cores 1 --forceall +``` +This runs Snakemake, using 1 CPU core, and forces all steps to run again, even if their outputs already exist. + + +This will automatically do the calculation described in the UML-Diagram: +- Download and process the required datasets (OpenStreetMap and DWD), +- Compute the theoretical solar energy production for German solar parks, +- Compare results with actual photovoltaic electricity feed-in data, +- Generate plots, diagrams, and a final report. + +All new data frames are saved in the `results/` directory. The report's images and files are saved under `workflow/reports/` and can also be viewed in the automatically generated *slides* (.md) under `docs/`. + + +## Specific Usage + +To remove all results, run: + +```bash +snakemake --cores 1 clean +``` + +To run all unittests, use the following command: + +```bash +pytest +``` + +### Parameterisation +You can customize the analysis by modifying parameters in the `config/config.yml` file. Specifically: + +**year**: Defines the year to be analyzed. + +**efficiency**: Specifies the average efficiency of the solar parcs, energy feed in and solar radiation (defined as a decimal, e.g. 0.15 for 15%). + +Adjusting these values allows flexible evaluation for different scenarios or datasets. + +## Data +This Project uses three datasets: + +#### Solarparc Data + +To get the area of all solarparks in germany, we use data from Open Street Maps. We use polygons (outlines) of the solarparcs and the outline of germany. + +| Data | Solarparc Data | +|----------|----------| +| Origin | Open Steet Maps | +| Data format | OSM XML | +| API | OverpassAPI| +| Link | https://www.openstreetmap.org/ | +| Licence | Data © OpenStreetMap contributors, licensed under Open Database License (ODbL) v1.0 | + +#### Photovoltaik Electricity Feed-in Data + +Statistics on the monthly electricity feed-in of various energy sources by the Federal Statistical Office of Germany (Destatis). It is possible to show or hide different properties. In this project, the electricity feed-in from photovoltaic systems monthly and over several years is of interest. + +| Data | Photovoltaic Data | +|----------|----------| +| Origin | DESTATIS | +| Data format | CSV oder XML | +| Link | https://www-genesis.destatis.de/datenbank/online/statistic/43312/table/43312-0001 | +| Licence | Data Licence Germany 2.0. | + +#### Sunshine Duration Data + +The DWD provides many different datasets on sunshine duration. We decided to use the monthly German averages. + +| Data | Sunshine Duration Data | +|----------|----------| +| Origin | DWD | +| Data format | TXT | +| Link | [opendata.dwd.de/climate_environment/CDC/regional_averages_DE/monthly/sunshine_duration/](opendata.dwd.de/climate_environment/CDC/regional_averages_DE/monthly/sunshine_duration/) | +| Licence | CC-BY-4.0 | + + +## Contribution + + +Contributions are welcome and encouraged! If you would like to contribute to this project, please first read our [Contribution Guidelines](CONTRIBUTING.md) to understand the development workflow and code standards. + +We also expect all contributors to follow our [Code of Conduct](CONDUCT.md) to ensure a respectful and inclusive environment. + +If you're looking for a place to start, check out the [open issues](https://gitup.uni-potsdam.de/gottlebe/solarlytics/-/issues). + + +## License + +**OpenStreetMap data**: + Data © OpenStreetMap contributors, licensed under the Open Database License (ODbL) v1.0. + See https://www.openstreetmap.org/copyright for details. + +**Project code and reports**: + This project is licensed under the MIT License – see [LICENSE](https://gitup.uni-potsdam.de/gottlebe/solarlytics/-/blob/main/LICENSE) file in this repository. + +This means you can freely use and modify the code. +If you ever publish processed OSM datasets, those must remain under ODbL with proper attribution. + +## Citation +If you use this software, please cite it as described in the [CITATION.cff](https://gitup.uni-potsdam.de/gottlebe/solarlytics/-/blob/tree/main/CITATION.cff) file. + +Example citation (in APA format): + +Gottlebe, J. Grellmann F., Rupinski M. (2025). SolarLytics: Estimating theoretical solar energy production in Germany (Version 1.0) [Computer software]. https://gitup.uni-potsdam.de/gottlebe/solarlytics + +## Contact +For questions or feedback, feel free to reach out via e-mail: +#### Owner: +- Joaquin Gottlebe: gottlebe@uni-potsdam.de + +#### Maintainer: +- Flora Grellmann: grellmann@uni-potsdam.de +- Mirjam Rupinski: rupinski@uni-potsdam.de + +#### Contributors: +\- + + diff --git a/2025_Research_Software_Engineering_2/config/config.yml b/2025_Research_Software_Engineering_2/config/config.yml new file mode 100644 index 0000000..e5c6b3d --- /dev/null +++ b/2025_Research_Software_Engineering_2/config/config.yml @@ -0,0 +1,7 @@ +result_path: "results" +report_path: "workflow/report" +data_path: "data" +scripts_path: "workflow/scripts" + +year: "2024" +efficiency: 0.00216 diff --git a/2025_Research_Software_Engineering_2/docs/UML_diagram_detail.png b/2025_Research_Software_Engineering_2/docs/UML_diagram_detail.png new file mode 100644 index 0000000..0c2b260 Binary files /dev/null and b/2025_Research_Software_Engineering_2/docs/UML_diagram_detail.png differ diff --git a/2025_Research_Software_Engineering_2/docs/UML_diagram_detail_1.png b/2025_Research_Software_Engineering_2/docs/UML_diagram_detail_1.png new file mode 100644 index 0000000..d03ccd7 Binary files /dev/null and b/2025_Research_Software_Engineering_2/docs/UML_diagram_detail_1.png differ diff --git a/2025_Research_Software_Engineering_2/docs/UML_diagram_detail_2.png b/2025_Research_Software_Engineering_2/docs/UML_diagram_detail_2.png new file mode 100644 index 0000000..288bb5b Binary files /dev/null and b/2025_Research_Software_Engineering_2/docs/UML_diagram_detail_2.png differ diff --git a/2025_Research_Software_Engineering_2/docs/UML_diagram_overview.png b/2025_Research_Software_Engineering_2/docs/UML_diagram_overview.png new file mode 100644 index 0000000..9f5b455 Binary files /dev/null and b/2025_Research_Software_Engineering_2/docs/UML_diagram_overview.png differ diff --git a/2025_Research_Software_Engineering_2/docs/requirements.md b/2025_Research_Software_Engineering_2/docs/requirements.md new file mode 100644 index 0000000..9be4caa --- /dev/null +++ b/2025_Research_Software_Engineering_2/docs/requirements.md @@ -0,0 +1,68 @@ +# SolarLytics Requirements + +## Functional Requirements +#### UML Diagram + +Main diagram describing the process of the complete project: +
![Alt-Text](/docs/UML_diagram_overview.png) + +The individual processing steps of the different datasets are shown here in more detail: +
![Alt-Text](/docs/UML_diagram_detail.png) + + +## Non-functional Requirements + +### Must Have + +- **Compatibility**: The workflow must run on Windows and Mac OS. It should be easy to deploy and run in different environments. +- **Documentation**: The documentation is for users and developers and must be available, including metadata, license information, a read-me file, and citation as well as contributing guidelines. +- **Reproducibility**: The workflow must be reproducible. +- **Testability**: The code must be well tested, with unit and integration tests in place. + +### Should Have + +- **Performance**: The workflow should able to process the datasets in a reasonable time. +- **Maintainability**: The code should be well modularized and organized, following the standard template and PEP 8 guidelines. It should be refactured regularily. +- **Easy-to-Use**: The workflow should provide a easy user experience + +### Could Have + +- **Accessibility**: The documentation could be translated to German. +- **Presentation**: The workflow could have a visual support in the form of graphics. + +### Won't Have + +- **Add-ons**: Function for other countries. + + +# Component Analysis + +| Abstract Workflow Node (Operation) | Input(s) | Output(s) |Implementation | +|------------------------------------|-------------------------------------------|---------------------------------------|----------------------------------------------| +|**photovoltaic data processing** | | | +| load and clean photovoltaics data | original dataset (.csv) from destatis | dataframe (.csv) | CLI tool built on pandas +| trim photovoltaic | dataframe (.csv) | dataframe(.csv) | CLI tool built on pandas +| collapse columns photovoltaic | dataframe (.csv) | dataframe (.csv) | CLI tool built on pandas +| | | | +|**sunshine duration data processing** | | | +| load sunshine duration data | DWD Website | sunshine duration data (.txt), one file for each month | CLI tool built on requests, os, bs4 and urllib +| merge series | 12 sunshine duration datasets (.txt) | processed dataframe (.csv) | CLI tool built on pandas +| collapse columns sunshine duration | dataframe (.csv) | dataframe (.csv) | CLI tool built on pandas +| trim sunshine duration | dataframe (.csv) | dataframe (.csv) | CLI tool built on pandas +| | | | +|**solarparc data processing** | | | +| load solarparc data and border data| OverpassAPI | .gpkg file (solarparc / border) | CLI http request over OverpassAPI, osmium, geopandas, shapely +| calculate area | .gpkg file | .txt with report | CLI tool built on geopandas +| | | | +|**analysis** | | | +| calculate theoretical energy | calculate area (.txt) & sunshine duration dataframe (.csv) | dataframe (.csv) | CLI tool built on pandas +| collapse columns theoretical energy| dataframe (.csv) | dataframe (.csv) | CLI tool built on pandas +| trim theoreticalenergy | dataframe (.csv) | energy differnce dataframe (.csv) | CLI tool built in pandas +| calculate difference | theoritcal energy (.csv) & photovoltaic energy (.csv) | dataframe .csv | CLI tool built on pandas +| plot energy difference | ernergy difference (.csv) | diagram over years (.png) | CLI tool built on matplotlib and pandas +| plot yearly energy change | dataframe (.csv) | diagram over years (.png) | CLI tool built on matplotlib and pandas +| plot solarparc map | .gpkg file (solarparc / border) | plot of germany (.png) | CLI tool built on matplotlib and geopandas +| plot yearly change sunshine | dataframe (.csv) | diagram over years (.png) | CLI tool built on matplotlib and pandas +| plot yearly change photovoltaic | dataframe (.csv) | diagram over years (.png) | CLI tool built on matplotlib and pandas +| plot monthly change potovoltaic | dataframe (.csv) | diagram over months (.png) | CLI tool built on matplotlib and pandas +| generate report | mutiple inputs (.txt, .png) | slides (.md) | built on markdown diff --git a/2025_Research_Software_Engineering_2/docs/slides.md b/2025_Research_Software_Engineering_2/docs/slides.md new file mode 100644 index 0000000..f622bd3 --- /dev/null +++ b/2025_Research_Software_Engineering_2/docs/slides.md @@ -0,0 +1,169 @@ +--- +marp: true +theme: uncover +class: invert +paginate: true +_paginate: false +header: +footer: '14.07.2025 / University of Potsdam / Flora Grellmann, Joaquin Gottlebe, Mirjam Rupinski' +--- + +# Germany’s Solar Potential Theory vs. Reality + +--- + +##### Research Questions + + +1. To what extent can theoretical solar energy production be estimated? + +2. How does the theoretical energy production compare to the actual energy production? + +... + +--- + +##### Modules + +![w:490](../docs/UML_diagram_overview.png) + +--- + +##### Non functional requirements + +**Compatibility**: The workflow must run on Windows Mac OS and Linux. +**Documentation**: The documentation is for users and developers. +**Reproducibility**: The workflow must be reproducible. +**Testability**: The code must be well tested. + +--- + +##### Workflow: Part 1 + +![w:1190](../docs/UML_diagram_detail_1.png) + + +--- + +##### Workflow: Part 2 + +![w:580](../docs/UML_diagram_detail_2.png) + +--- + +##### Dataset + + + + + +| Dataset | Origin | Data format | API | Link | Licence | +| -------------------- | ---------------- | ----------- | ----------- | ------------------- | ---------------------------- | +| Solarparcs & Germany | Open Street Maps | OSM XML | OverpassAPI | openstreetmap.org | © OpenStreetMap contributors | +| Sunshine Duration | DWD | TXT | - | opendata.dwd.de | CC-BY-4.0 | +| Actual Energy | DESTATIS | CSV or XML | - | genesis.destatis.de | Data Licence Germany 2.0 | + + +--- + +#### Created Tools + +| **Stage** | **Tool** | +| ------------------------- | ----------------------- | +| **Data Acquisition** | wgetdir.py | +| **Data Processing** | clip.py | +| | merge_series.py | +| | clean_pv_data.py | +| | polygons2area.py | +| | collapse_columns.py | +| | trim.py | +| | calculate_energy.py | +| | calculate_difference.py | +| **Data Visualization** | plot_geo.py | +| | plot_yearly_change.py | +| | plot_monthly_change.py | +| | plot_difference.py | + + +--- + + + +##### Results - Solarparcs Area + +- Total area: 16.000 $km^2$ + +![bg right](../workflow/report/solarparcs.png) + +--- + + +##### Results - Sunshine Duration + +![](../workflow/report/sunshine_duration_yearly_trimmed.png) + +--- + + +##### Results - Theoretical Energy + +![](../workflow/report/solarparcs_energy_yearly_trimmed.png) + +--- + + +##### Results - Actual Energy + +![](../workflow/report/pv_data_cleaned_trimmed_collapsed.png) + +--- + + +##### Results - Difference + +![](../workflow/report/energy_difference.png) + +--- + + + + +##### Reflection + +###### Worked well + +- Working with workflows (Snakemake) +- Working with Issues and Tasks as a group +- Review process +- Access to relevant data + + +###### Challenges + +- Defining clear roadmap +- Group communication +- Working with licences + +--- + +##### Not included + +- Analysis of monthly change + +--- + +##### Thank you for you attention. + +Why do you think the theorical and actual energy diverges more in earlier year? diff --git a/2025_Research_Software_Engineering_2/pytest.ini b/2025_Research_Software_Engineering_2/pytest.ini new file mode 100644 index 0000000..79e9aef --- /dev/null +++ b/2025_Research_Software_Engineering_2/pytest.ini @@ -0,0 +1,7 @@ +[pytest] +pythonpath = workflow/scripts +filterwarnings = ignore::DeprecationWarning:pyogrio.* +log_cli = true +log_cli_level = INFO + + diff --git a/2025_Research_Software_Engineering_2/requirements.txt b/2025_Research_Software_Engineering_2/requirements.txt new file mode 100644 index 0000000..0b84c43 --- /dev/null +++ b/2025_Research_Software_Engineering_2/requirements.txt @@ -0,0 +1,7 @@ +pytest==8.4.1 +geopandas==1.1.0 +matplotlib==3.10.3 +bs4==0.0.2 +snakemake==9.6.1 +logging==0.4.9.6 +pylint==3.3.7 diff --git a/2025_Research_Software_Engineering_2/tests/conftest.py b/2025_Research_Software_Engineering_2/tests/conftest.py new file mode 100644 index 0000000..81b43a0 --- /dev/null +++ b/2025_Research_Software_Engineering_2/tests/conftest.py @@ -0,0 +1,27 @@ +""" +Shared test fixtures for pytest. + +This file defines reusable fixtures that are automatically discovered by pytest +and can be used across multiple test modules. + +Fixtures: +--------- +- local_tmp_path: Creates (or cleans) a temporary directory under 'tests/tmp' + to store output files generated during tests. Ensures a clean environment + for each test run. +""" + +from pathlib import Path +import pytest + + +@pytest.fixture +def local_tmp_path(): + """Fixture to create and return a temporary path for output files.""" + path = Path("tests/tmp") + if path.exists(): + for file in path.iterdir(): + file.unlink() + else: + path.mkdir(parents=True) + return path diff --git a/2025_Research_Software_Engineering_2/tests/data/area.txt b/2025_Research_Software_Engineering_2/tests/data/area.txt new file mode 100644 index 0000000..2daa89e --- /dev/null +++ b/2025_Research_Software_Engineering_2/tests/data/area.txt @@ -0,0 +1 @@ +197429970.81 \ No newline at end of file diff --git a/2025_Research_Software_Engineering_2/tests/data/area_easy.txt b/2025_Research_Software_Engineering_2/tests/data/area_easy.txt new file mode 100644 index 0000000..56a6051 --- /dev/null +++ b/2025_Research_Software_Engineering_2/tests/data/area_easy.txt @@ -0,0 +1 @@ +1 \ No newline at end of file diff --git a/2025_Research_Software_Engineering_2/tests/data/clip.gpkg b/2025_Research_Software_Engineering_2/tests/data/clip.gpkg new file mode 100644 index 0000000..2f80fff Binary files /dev/null and b/2025_Research_Software_Engineering_2/tests/data/clip.gpkg differ diff --git a/2025_Research_Software_Engineering_2/tests/data/germany.gpkg b/2025_Research_Software_Engineering_2/tests/data/germany.gpkg new file mode 100644 index 0000000..23f7aef Binary files /dev/null and b/2025_Research_Software_Engineering_2/tests/data/germany.gpkg differ diff --git a/2025_Research_Software_Engineering_2/tests/data/solarparc_energy.csv b/2025_Research_Software_Engineering_2/tests/data/solarparc_energy.csv new file mode 100644 index 0000000..c875af6 --- /dev/null +++ b/2025_Research_Software_Engineering_2/tests/data/solarparc_energy.csv @@ -0,0 +1,4 @@ +Jahr,January,February,March,April,May,June,July,August,September,October,November,December +1951,3.09,5.73,11.01,19.91,20.33,21.02,23.88,20.41,17.51,19.25,3.85,5.18 +1952,3.30,5.20,12.43,19.57,21.20,22.47,26.14,20.75,11.74,7.96,3.79,3.12 + diff --git a/2025_Research_Software_Engineering_2/tests/data/solarparcs.gpkg b/2025_Research_Software_Engineering_2/tests/data/solarparcs.gpkg new file mode 100644 index 0000000..594f3c7 Binary files /dev/null and b/2025_Research_Software_Engineering_2/tests/data/solarparcs.gpkg differ diff --git a/2025_Research_Software_Engineering_2/tests/data/sunshine_duration.csv b/2025_Research_Software_Engineering_2/tests/data/sunshine_duration.csv new file mode 100644 index 0000000..ef16c61 --- /dev/null +++ b/2025_Research_Software_Engineering_2/tests/data/sunshine_duration.csv @@ -0,0 +1,3 @@ +Jahr,January,February,March,April,May,June,July,August,September,October,November,December +1951,30.9,57.3,110.1,199.1,203.3,210.2,238.8,204.1,175.1,192.5,38.5,51.8 +1952,33.0,52.0,124.3,195.7,212.0,224.7,261.4,207.5,117.4,79.6,37.9,31.2 diff --git a/2025_Research_Software_Engineering_2/tests/data/sunshine_duration/regional_averages_sd_01.txt b/2025_Research_Software_Engineering_2/tests/data/sunshine_duration/regional_averages_sd_01.txt new file mode 100644 index 0000000..c224fb8 --- /dev/null +++ b/2025_Research_Software_Engineering_2/tests/data/sunshine_duration/regional_averages_sd_01.txt @@ -0,0 +1,7 @@ +Zeitreihen fuer Gebietsmittel fuer Bundeslaender und Kombinationen von Bundeslaender, erstellt am: 20250602 + +Jahr;Monat;Brandenburg/Berlin;Brandenburg;Baden-Wuerttemberg;Bayern;Hessen;Mecklenburg-Vorpommern;Niedersachsen;Niedersachsen/Hamburg/Bremen;Nordrhein-Westfalen;Rheinland-Pfalz;Schleswig-Holstein;Saarland;Sachsen;Sachsen-Anhalt;Thueringen/Sachsen-Anhalt;Thueringen;Deutschland; + +1951;01; 45.2; 45.3; 30.6; 34.5; 22.8; 39.7; 24.4; 24.6; 23.3; 23.9; 35.8; 21.5; 37.6; 28.0; 26.0; 23.5; 30.9; + +1952;01; 38.9; 39.0; 39.1; 39.3; 19.3; 38.1; 25.9; 26.0; 23.3; 27.0; 38.1; 15.2; 41.9; 35.0; 30.7; 25.3; 33.0; \ No newline at end of file diff --git a/2025_Research_Software_Engineering_2/tests/data/sunshine_duration/regional_averages_sd_02.txt b/2025_Research_Software_Engineering_2/tests/data/sunshine_duration/regional_averages_sd_02.txt new file mode 100644 index 0000000..f9f6628 --- /dev/null +++ b/2025_Research_Software_Engineering_2/tests/data/sunshine_duration/regional_averages_sd_02.txt @@ -0,0 +1,7 @@ +Zeitreihen fuer Gebietsmittel fuer Bundeslaender und Kombinationen von Bundeslaender, erstellt am: 20250602 + +Jahr;Monat;Brandenburg/Berlin;Brandenburg;Baden-Wuerttemberg;Bayern;Hessen;Mecklenburg-Vorpommern;Niedersachsen;Niedersachsen/Hamburg/Bremen;Nordrhein-Westfalen;Rheinland-Pfalz;Schleswig-Holstein;Saarland;Sachsen;Sachsen-Anhalt;Thueringen/Sachsen-Anhalt;Thueringen;Deutschland; + +1951;02; 67.0; 67.2; 65.9; 63.7; 49.7; 56.1; 44.6; 44.5; 52.1; 59.1; 37.5; 59.8; 80.6; 50.2; 50.5; 50.9; 57.3; + +1952;02; 61.5; 61.5; 61.1; 42.5; 43.6; 62.9; 52.3; 52.4; 42.9; 57.4; 65.0; 74.9; 46.4; 58.5; 52.0; 43.9; 52.0; \ No newline at end of file diff --git a/2025_Research_Software_Engineering_2/tests/data/sunshine_duration/regional_averages_sd_03.txt b/2025_Research_Software_Engineering_2/tests/data/sunshine_duration/regional_averages_sd_03.txt new file mode 100644 index 0000000..67e6bad --- /dev/null +++ b/2025_Research_Software_Engineering_2/tests/data/sunshine_duration/regional_averages_sd_03.txt @@ -0,0 +1,8 @@ +Zeitreihen fuer Gebietsmittel fuer Bundeslaender und Kombinationen von Bundeslaender, erstellt am: 20250602 + +Jahr;Monat;Brandenburg/Berlin;Brandenburg;Baden-Wuerttemberg;Bayern;Hessen;Mecklenburg-Vorpommern;Niedersachsen;Niedersachsen/Hamburg/Bremen;Nordrhein-Westfalen;Rheinland-Pfalz;Schleswig-Holstein;Saarland;Sachsen;Sachsen-Anhalt;Thueringen/Sachsen-Anhalt;Thueringen;Deutschland; + +1951;03; 129.5; 129.5; 96.3; 98.9; 114.6; 117.4; 114.6; 114.9; 105.0; 107.3; 117.9; 110.3; 116.9; 118.1; 115.7; 112.7; 110.1; + +1952;03; 163.3; 163.3; 115.7; 107.0; 110.7; 178.7; 121.5; 121.9; 99.7; 106.1; 152.4; 111.7; 137.6; 136.8; 125.3; 110.9; 124.3; + diff --git a/2025_Research_Software_Engineering_2/tests/data/sunshine_duration/regional_averages_sd_04.txt b/2025_Research_Software_Engineering_2/tests/data/sunshine_duration/regional_averages_sd_04.txt new file mode 100644 index 0000000..97833f0 --- /dev/null +++ b/2025_Research_Software_Engineering_2/tests/data/sunshine_duration/regional_averages_sd_04.txt @@ -0,0 +1,8 @@ +Zeitreihen fuer Gebietsmittel fuer Bundeslaender und Kombinationen von Bundeslaender, erstellt am: 20250602 + +Jahr;Monat;Brandenburg/Berlin;Brandenburg;Baden-Wuerttemberg;Bayern;Hessen;Mecklenburg-Vorpommern;Niedersachsen;Niedersachsen/Hamburg/Bremen;Nordrhein-Westfalen;Rheinland-Pfalz;Schleswig-Holstein;Saarland;Sachsen;Sachsen-Anhalt;Thueringen/Sachsen-Anhalt;Thueringen;Deutschland; + +1951;04; 227.3; 227.4; 195.6; 198.0; 189.0; 226.3; 185.3; 185.4; 180.3; 187.5; 189.3; 196.8; 223.6; 208.2; 204.0; 198.7; 199.1; + +1952;04; 204.4; 204.6; 180.2; 181.8; 192.0; 207.6; 205.3; 205.5; 203.2; 199.5; 209.7; 223.8; 195.2; 200.8; 195.4; 188.6; 195.7; + diff --git a/2025_Research_Software_Engineering_2/tests/data/sunshine_duration/regional_averages_sd_05.txt b/2025_Research_Software_Engineering_2/tests/data/sunshine_duration/regional_averages_sd_05.txt new file mode 100644 index 0000000..be6ad7b --- /dev/null +++ b/2025_Research_Software_Engineering_2/tests/data/sunshine_duration/regional_averages_sd_05.txt @@ -0,0 +1,8 @@ +Zeitreihen fuer Gebietsmittel fuer Bundeslaender und Kombinationen von Bundeslaender, erstellt am: 20250602 + +Jahr;Monat;Brandenburg/Berlin;Brandenburg;Baden-Wuerttemberg;Bayern;Hessen;Mecklenburg-Vorpommern;Niedersachsen;Niedersachsen/Hamburg/Bremen;Nordrhein-Westfalen;Rheinland-Pfalz;Schleswig-Holstein;Saarland;Sachsen;Sachsen-Anhalt;Thueringen/Sachsen-Anhalt;Thueringen;Deutschland; + +1951;05; 195.3; 195.5; 197.8; 192.2; 202.7; 244.1; 211.1; 211.5; 203.8; 205.3; 243.9; 216.2; 200.5; 180.5; 182.2; 184.4; 203.3; + +1952;05; 203.6; 203.8; 226.9; 196.6; 222.7; 214.4; 227.7; 227.9; 211.8; 221.0; 237.9; 247.1; 182.4; 204.0; 202.4; 200.4; 212.0; + diff --git a/2025_Research_Software_Engineering_2/tests/data/sunshine_duration/regional_averages_sd_06.txt b/2025_Research_Software_Engineering_2/tests/data/sunshine_duration/regional_averages_sd_06.txt new file mode 100644 index 0000000..7bba9a9 --- /dev/null +++ b/2025_Research_Software_Engineering_2/tests/data/sunshine_duration/regional_averages_sd_06.txt @@ -0,0 +1,8 @@ +Zeitreihen fuer Gebietsmittel fuer Bundeslaender und Kombinationen von Bundeslaender, erstellt am: 20250602 + +Jahr;Monat;Brandenburg/Berlin;Brandenburg;Baden-Wuerttemberg;Bayern;Hessen;Mecklenburg-Vorpommern;Niedersachsen;Niedersachsen/Hamburg/Bremen;Nordrhein-Westfalen;Rheinland-Pfalz;Schleswig-Holstein;Saarland;Sachsen;Sachsen-Anhalt;Thueringen/Sachsen-Anhalt;Thueringen;Deutschland; + +1951;06; 245.1; 245.3; 194.2; 198.7; 190.0; 255.5; 212.8; 213.4; 191.4; 190.1; 251.0; 190.8; 223.8; 210.6; 203.7; 195.0; 210.2; + +1952;06; 233.1; 233.0; 254.6; 227.7; 226.9; 223.7; 202.2; 202.2; 204.6; 236.4; 198.5; 265.3; 230.9; 233.8; 229.2; 223.3; 224.7; + diff --git a/2025_Research_Software_Engineering_2/tests/data/sunshine_duration/regional_averages_sd_07.txt b/2025_Research_Software_Engineering_2/tests/data/sunshine_duration/regional_averages_sd_07.txt new file mode 100644 index 0000000..849c1ce --- /dev/null +++ b/2025_Research_Software_Engineering_2/tests/data/sunshine_duration/regional_averages_sd_07.txt @@ -0,0 +1,8 @@ +Zeitreihen fuer Gebietsmittel fuer Bundeslaender und Kombinationen von Bundeslaender, erstellt am: 20250602 + +Jahr;Monat;Brandenburg/Berlin;Brandenburg;Baden-Wuerttemberg;Bayern;Hessen;Mecklenburg-Vorpommern;Niedersachsen;Niedersachsen/Hamburg/Bremen;Nordrhein-Westfalen;Rheinland-Pfalz;Schleswig-Holstein;Saarland;Sachsen;Sachsen-Anhalt;Thueringen/Sachsen-Anhalt;Thueringen;Deutschland; + +1951;07; 252.6; 252.6; 270.6; 258.0; 238.3; 248.3; 205.1; 205.3; 202.2; 241.8; 213.4; 270.7; 248.7; 229.5; 233.3; 238.1; 238.8; + +1952;07; 269.1; 269.2; 306.9; 296.0; 267.1; 259.3; 209.4; 209.4; 211.0; 266.1; 236.3; 302.3; 281.3; 245.1; 251.7; 259.9; 261.4; + diff --git a/2025_Research_Software_Engineering_2/tests/data/sunshine_duration/regional_averages_sd_08.txt b/2025_Research_Software_Engineering_2/tests/data/sunshine_duration/regional_averages_sd_08.txt new file mode 100644 index 0000000..64e5f9e --- /dev/null +++ b/2025_Research_Software_Engineering_2/tests/data/sunshine_duration/regional_averages_sd_08.txt @@ -0,0 +1,8 @@ +Zeitreihen fuer Gebietsmittel fuer Bundeslaender und Kombinationen von Bundeslaender, erstellt am: 20250602 + +Jahr;Monat;Brandenburg/Berlin;Brandenburg;Baden-Wuerttemberg;Bayern;Hessen;Mecklenburg-Vorpommern;Niedersachsen;Niedersachsen/Hamburg/Bremen;Nordrhein-Westfalen;Rheinland-Pfalz;Schleswig-Holstein;Saarland;Sachsen;Sachsen-Anhalt;Thueringen/Sachsen-Anhalt;Thueringen;Deutschland; + +1951;08; 213.9; 214.1; 213.8; 220.7; 201.5; 203.9; 192.5; 192.8; 179.8; 198.1; 196.3; 213.4; 226.3; 186.6; 188.6; 191.2; 204.1; + +1952;08; 220.3; 220.1; 238.0; 227.1; 195.1; 214.9; 184.4; 184.7; 176.2; 198.4; 186.7; 218.7; 223.0; 196.2; 195.8; 195.3; 207.5; + diff --git a/2025_Research_Software_Engineering_2/tests/data/sunshine_duration/regional_averages_sd_09.txt b/2025_Research_Software_Engineering_2/tests/data/sunshine_duration/regional_averages_sd_09.txt new file mode 100644 index 0000000..c59e9f1 --- /dev/null +++ b/2025_Research_Software_Engineering_2/tests/data/sunshine_duration/regional_averages_sd_09.txt @@ -0,0 +1,8 @@ +Zeitreihen fuer Gebietsmittel fuer Bundeslaender und Kombinationen von Bundeslaender, erstellt am: 20250602 + +Jahr;Monat;Brandenburg/Berlin;Brandenburg;Baden-Wuerttemberg;Bayern;Hessen;Mecklenburg-Vorpommern;Niedersachsen;Niedersachsen/Hamburg/Bremen;Nordrhein-Westfalen;Rheinland-Pfalz;Schleswig-Holstein;Saarland;Sachsen;Sachsen-Anhalt;Thueringen/Sachsen-Anhalt;Thueringen;Deutschland; + +1951;09; 205.3; 205.3; 170.7; 173.1; 165.8; 196.2; 167.8; 168.0; 149.1; 173.7; 166.9; 190.9; 182.6; 191.9; 183.2; 172.3; 175.1; + +1952;09; 136.3; 136.3; 116.1; 101.1; 93.5; 177.3; 128.1; 128.7; 103.2; 106.0; 161.1; 117.8; 103.5; 116.3; 103.3; 87.0; 117.4; + diff --git a/2025_Research_Software_Engineering_2/tests/data/sunshine_duration/regional_averages_sd_10.txt b/2025_Research_Software_Engineering_2/tests/data/sunshine_duration/regional_averages_sd_10.txt new file mode 100644 index 0000000..c1591bb --- /dev/null +++ b/2025_Research_Software_Engineering_2/tests/data/sunshine_duration/regional_averages_sd_10.txt @@ -0,0 +1,8 @@ +Zeitreihen fuer Gebietsmittel fuer Bundeslaender und Kombinationen von Bundeslaender, erstellt am: 20250602 + +Jahr;Monat;Brandenburg/Berlin;Brandenburg;Baden-Wuerttemberg;Bayern;Hessen;Mecklenburg-Vorpommern;Niedersachsen;Niedersachsen/Hamburg/Bremen;Nordrhein-Westfalen;Rheinland-Pfalz;Schleswig-Holstein;Saarland;Sachsen;Sachsen-Anhalt;Thueringen/Sachsen-Anhalt;Thueringen;Deutschland; + +1951;10; 227.4; 227.5; 151.6; 183.7; 184.3; 225.7; 204.9; 205.4; 181.9; 170.1; 215.6; 169.7; 206.0; 200.4; 195.0; 188.2; 192.5; + +1952;10; 55.8; 55.9; 94.2; 89.6; 81.9; 76.2; 71.9; 71.8; 81.0; 100.1; 66.5; 103.2; 71.0; 72.9; 72.9; 72.9; 79.6; + diff --git a/2025_Research_Software_Engineering_2/tests/data/sunshine_duration/regional_averages_sd_11.txt b/2025_Research_Software_Engineering_2/tests/data/sunshine_duration/regional_averages_sd_11.txt new file mode 100644 index 0000000..c2acf3f --- /dev/null +++ b/2025_Research_Software_Engineering_2/tests/data/sunshine_duration/regional_averages_sd_11.txt @@ -0,0 +1,8 @@ +Zeitreihen fuer Gebietsmittel fuer Bundeslaender und Kombinationen von Bundeslaender, erstellt am: 20250602 + +Jahr;Monat;Brandenburg/Berlin;Brandenburg;Baden-Wuerttemberg;Bayern;Hessen;Mecklenburg-Vorpommern;Niedersachsen;Niedersachsen/Hamburg/Bremen;Nordrhein-Westfalen;Rheinland-Pfalz;Schleswig-Holstein;Saarland;Sachsen;Sachsen-Anhalt;Thueringen/Sachsen-Anhalt;Thueringen;Deutschland; + +1951;11; 32.7; 32.8; 54.7; 48.5; 27.5; 37.7; 28.7; 28.7; 39.2; 44.3; 28.3; 45.9; 35.0; 29.6; 29.0; 28.3; 38.5; + +1952;11; 31.3; 31.4; 44.6; 40.8; 34.1; 31.4; 32.2; 32.2; 43.4; 38.1; 39.6; 32.3; 44.0; 33.4; 36.1; 39.4; 37.9; + diff --git a/2025_Research_Software_Engineering_2/tests/data/sunshine_duration/regional_averages_sd_12.txt b/2025_Research_Software_Engineering_2/tests/data/sunshine_duration/regional_averages_sd_12.txt new file mode 100644 index 0000000..db053c9 --- /dev/null +++ b/2025_Research_Software_Engineering_2/tests/data/sunshine_duration/regional_averages_sd_12.txt @@ -0,0 +1,8 @@ +Zeitreihen fuer Gebietsmittel fuer Bundeslaender und Kombinationen von Bundeslaender, erstellt am: 20250602 + +Jahr;Monat;Brandenburg/Berlin;Brandenburg;Baden-Wuerttemberg;Bayern;Hessen;Mecklenburg-Vorpommern;Niedersachsen;Niedersachsen/Hamburg/Bremen;Nordrhein-Westfalen;Rheinland-Pfalz;Schleswig-Holstein;Saarland;Sachsen;Sachsen-Anhalt;Thueringen/Sachsen-Anhalt;Thueringen;Deutschland; + +1951;12; 51.2; 51.4; 69.9; 42.7; 38.1; 53.2; 51.6; 51.5; 59.5; 49.6; 42.7; 65.1; 61.3; 52.3; 50.7; 48.7; 51.8; + +1952;12; 35.8; 35.9; 34.9; 28.4; 30.6; 29.9; 24.0; 24.0; 32.0; 33.7; 21.7; 33.7; 50.5; 29.8; 31.6; 33.9; 31.2; + diff --git a/2025_Research_Software_Engineering_2/tests/test_calculate_difference.py b/2025_Research_Software_Engineering_2/tests/test_calculate_difference.py new file mode 100644 index 0000000..d4d32a9 --- /dev/null +++ b/2025_Research_Software_Engineering_2/tests/test_calculate_difference.py @@ -0,0 +1,83 @@ +""" +Unit tests for the calculate_difference.py module, which verifies the correctness +of the energy difference calculation. +""" + +from unittest import mock +import pandas as pd +from calculate_difference import calc_energy_difference + + +@mock.patch("calculate_difference.logs.log_processed") +@mock.patch("calculate_difference.logs.log_processing") +@mock.patch("calculate_difference.checks.check_dir") +@mock.patch("calculate_difference.checks.check_path") +@mock.patch("calculate_difference.utils.save_df") +@mock.patch("calculate_difference.utils.read_df") +def test_calc_energy_difference(mock_read_df, mock_save_df, + _mock_check_path, _mock_check_dir, + _mock_log_processing, _mock_log_processed): + """ + Test that calc_difference_difference computes the correct energy difference per + year and saves the expected DataFrame. + """ + df_actual = pd.DataFrame({ + 'year': [2018, 2019, 2020], + 'Summe': [100, 200, 300] + }) + df_theoretical = pd.DataFrame({ + 'year': [2018, 2019, 2020], + 'Summe': [90, 210, 310] + }) + + mock_read_df.side_effect = [df_actual, df_theoretical] + calc_energy_difference("actual.csv", "theoretical.csv", "output.csv") + + expected_diff = abs(df_actual['Summe'] - df_theoretical['Summe']) + expected_df = pd.DataFrame({ + 'year': df_actual["year"], + 'Energy Difference [kWh]': expected_diff + }) + + result_df = mock_save_df.call_args[0][0] + # adjust types, because "2018" =/= 2018 + expected_df["year"] = expected_df["year"].astype(int) + result_df["year"] = result_df["year"].astype(int) + + pd.testing.assert_frame_equal( + result_df.sort_values(by="year").reset_index(drop=True), + expected_df.sort_values(by="year").reset_index(drop=True) + ) + + +@mock.patch("calculate_difference.logs.log_processed") +@mock.patch("calculate_difference.logs.log_processing") +@mock.patch("calculate_difference.checks.check_dir") +@mock.patch("calculate_difference.checks.check_path") +@mock.patch("calculate_difference.utils.save_df") +@mock.patch("calculate_difference.utils.read_df") +def test_calc_energy_difference_dimensions(mock_read_df, mock_save_df, + _mock_check_path, _mock_check_dir, + _mock_log_processing, _mock_log_processed): + """ + Test that the resulting DataFrame has the expected shape: same row count as input + and two columns ('year' and 'Energy Difference [kWh]'). + """ + df_actual = pd.DataFrame({ + 'year': [2018, 2019, 2020], + 'Summe': [100, 200, 300] + }) + df_theoretical = pd.DataFrame({ + 'year': [2018, 2019, 2020], + 'Summe': [90, 210, 310] + }) + + mock_read_df.side_effect = [df_actual, df_theoretical] + calc_energy_difference("actual.csv", "theoretical.csv", "output.csv") + result_df = mock_save_df.call_args[0][0] + + # checks whether the number of rows is the same + assert len(result_df) == len(df_actual) + + # checks exactly 2 columns ("year", "energy difference") + assert result_df.shape[1] == 2 diff --git a/2025_Research_Software_Engineering_2/tests/test_calculate_energy.py b/2025_Research_Software_Engineering_2/tests/test_calculate_energy.py new file mode 100644 index 0000000..74b6d81 --- /dev/null +++ b/2025_Research_Software_Engineering_2/tests/test_calculate_energy.py @@ -0,0 +1,23 @@ +"""Unit tests for the calculate_energy function """ + +import os +import pandas as pd +from calculate_energy import calculate_energy + + +def test_calculate_energy(local_tmp_path): + """ + Test that calculate_energy processes solarparc area and sunshine data to compute + energy output, and writes the result to a non-empty CSV file. + """ + area_data_path = "tests/data/area_easy.txt" + sunshine_data_path = "tests/data/sunshine_duration.csv" + output_path = local_tmp_path / "energy.csv" + expected_path = "tests/data/solarparc_energy.csv" + + calculate_energy(area_data_path, sunshine_data_path, output_path, 1) + expected_data = pd.read_csv(expected_path) + output_data = pd.read_csv(output_path) + + assert os.path.exists(output_path) + pd.testing.assert_frame_equal(expected_data, output_data) diff --git a/2025_Research_Software_Engineering_2/tests/test_checks.py b/2025_Research_Software_Engineering_2/tests/test_checks.py new file mode 100644 index 0000000..2875f9d --- /dev/null +++ b/2025_Research_Software_Engineering_2/tests/test_checks.py @@ -0,0 +1,160 @@ +""" +Unit tests for the `checks` module, which validate various input verification functions. +""" +import sys +import pandas as pd +import geopandas as gpd +from shapely.geometry import Point +import pytest +import checks + + +def test_check_empty(): + """ + Test that check_empty raises ValueError for empty or None inputs, and + passes for valid inputs. + """ + checks.check_empty("hello") + checks.check_empty([1, 2, 3]) + + try: + checks.check_empty("") + except ValueError: + pass + else: + assert False, "Expected ValueError for empty string" + + try: + checks.check_empty([]) + except ValueError: + pass + else: + assert False, "Expected ValueError for empty list" + + try: + checks.check_empty(None) + except ValueError: + pass + else: + assert False, "Expected ValueError for None" + + +def test_check_path(local_tmp_path): + """ + Test that check_path passes for existing files and raises FileNotFoundError + for missing files. + """ + tmp_file = local_tmp_path / "file.txt" + tmp_file.write_text("test") + checks.check_path(str(tmp_file)) + + with pytest.raises(FileNotFoundError): + checks.check_path(str(local_tmp_path / "nonexistent.txt")) + + +def test_check_dir(local_tmp_path): + """Test that check_dir verifies if the directory part of a path exists.""" + some_file = local_tmp_path / "some_file.txt" + checks.check_dir(str(some_file)) + + with pytest.raises(FileNotFoundError): + checks.check_dir("/non/existing/parent_dir/file.txt") + + +def test_check_args(): + """Test that check_args validates the number of command-line arguments.""" + original_argv = sys.argv + sys.argv = ['prog', 'arg1', 'arg2'] + + checks.check_args(3, "Wrong args count") + + try: + checks.check_args(2, "Wrong args count") + except RuntimeError: + pass + else: + assert False, "Expected RuntimeError for wrong arg count" + + sys.argv = original_argv + + +def test_check_crs(): + """ + Test that check_crs passes for matching CRS values and raises ValueError + on mismatch. + """ + checks.check_crs("EPSG:4326", "EPSG:4326") + + try: + checks.check_crs("EPSG:4326", "EPSG:3857") + except ValueError: + pass + else: + assert False, "Expected ValueError for CRS mismatch" + + +def test_check_df(): + """Test that check_df validates input as non-empty pandas DataFrame with non-NaN data.""" + df = pd.DataFrame({"a": [1, 2]}) + checks.check_df(df) + + try: + checks.check_df([1, 2, 3]) + except TypeError: + pass + else: + assert False, "Expected TypeError for non-DataFrame" + + try: + checks.check_df(pd.DataFrame()) + except ValueError: + pass + else: + assert False, "Expected ValueError for empty DataFrame" + + try: + checks.check_df(pd.DataFrame({"a": [None, None]})) + except ValueError: + pass + else: + assert False, "Expected ValueError for DataFrame all NaNs" + + +def test_check_gdf(): + """Test that check_gdf validates input as non-empty GeoDataFrame with valid geometries.""" + gdf = gpd.GeoDataFrame({'geometry': [Point(0, 0)]}) + checks.check_gdf(gdf) + + try: + checks.check_gdf(pd.DataFrame()) + except TypeError: + pass + else: + assert False, "Expected TypeError for non-GeoDataFrame" + + try: + checks.check_gdf(gpd.GeoDataFrame()) + except ValueError: + pass + else: + assert False, "Expected ValueError for empty GeoDataFrame" + + empty_geom = gpd.GeoDataFrame({'geometry': [None, None]}) + try: + checks.check_gdf(empty_geom) + except ValueError: + pass + else: + assert False, "Expected ValueError for GeoDataFrame with empty geometries" + + +def test_check_member(): + """Test that check_member confirms presence of a member in a collection.""" + checks.check_member('a', ['a', 'b', 'c']) + + try: + checks.check_member('d', ['a', 'b', 'c']) + except ValueError: + pass + else: + assert False, "Expected ValueError for invalid member" diff --git a/2025_Research_Software_Engineering_2/tests/test_clean_pv_data.py b/2025_Research_Software_Engineering_2/tests/test_clean_pv_data.py new file mode 100644 index 0000000..e499b3d --- /dev/null +++ b/2025_Research_Software_Engineering_2/tests/test_clean_pv_data.py @@ -0,0 +1,45 @@ +""" +Unit tests for the module clean_pv_data.py +""" +from unittest.mock import patch +import pandas as pd +from clean_pv_data import clean_pv_data + + +@patch("utils.save_df") +@patch("utils.read_df") +@patch("checks.check_empty") +@patch("checks.check_dir") +@patch("checks.check_path") +@patch("logs.log_processing") +@patch("logs.log_processed") +def test_clean_pv_data(_mock_log_processed, _mock_log_processing, + _mock_check_path, _mock_check_dir, _mock_check_empty, + mock_read_df, mock_save_df): + """ + Test that clean_pv_data filters by variable label and reshapes the data into + a wide format by month. + """ + # Dummy parameter setup + extracted_type = "Electricity feed-in" + inputh_path = "dummy_input.csv" + output_path = "dummy_output.csv" + + input_data = pd.DataFrame({ + "time": ["2022", "2022", "2022"], + "1_variable_attribute_label": ["January", "February", "January"], + "value": [100, 150, 300], + "value_variable_label": ["Electricity feed-in", + "Electricity feed-in", + "Net nominal capacity"] + }) + mock_read_df.return_value = input_data + + clean_pv_data(inputh_path, output_path, extracted_type) + result_df = mock_save_df.call_args[0][0] + + assert "January" in result_df.columns + assert "February" in result_df.columns + assert result_df.loc["2022", "January"] == 100 + assert result_df.loc["2022", "February"] == 150 + assert "Net nominal capacity" not in result_df.values diff --git a/2025_Research_Software_Engineering_2/tests/test_clip.py b/2025_Research_Software_Engineering_2/tests/test_clip.py new file mode 100644 index 0000000..122e2cb --- /dev/null +++ b/2025_Research_Software_Engineering_2/tests/test_clip.py @@ -0,0 +1,21 @@ +"""" +Unit test verifying that the clip function correctly clips spatial data +using a provided overlay. +""" + +import geopandas as gpd +from clip import clip + + +def test_clip(local_tmp_path): # pylint: disable=redefined-outer-name + """Test that clip() writes a clipped GeoDataFrame matching the expected result""" + input_path = "tests/data/solarparcs.gpkg" + overlay_path = "tests/data/germany.gpkg" + expected_path = "tests/data/clip.gpkg" + output_path = local_tmp_path / "output.gpkg" + + clip(input_path, overlay_path, output_path) + expected_data = gpd.read_file(expected_path) + output_data = gpd.read_file(output_path) + + assert len(expected_data) == len(output_data) diff --git a/2025_Research_Software_Engineering_2/tests/test_collapse_columns.py b/2025_Research_Software_Engineering_2/tests/test_collapse_columns.py new file mode 100644 index 0000000..7147840 --- /dev/null +++ b/2025_Research_Software_Engineering_2/tests/test_collapse_columns.py @@ -0,0 +1,53 @@ +""" +Unit tests for the collapse_columns function, which merges multiple columns +by summing their values. +""" +from unittest.mock import patch +import pandas as pd +from collapse_columns import collapse_columns + + +@patch("utils.save_df") +@patch("utils.read_df") +@patch("checks.check_dir") +@patch("checks.check_path") +def test_sum_values_correctly(_mock_check_path, _mock_check_dir, + mock_read_df, mock_save_df): + """ + Test that collapse_columns sums values across all columns and stores the + result in the specified column. + """ + input_df = pd.DataFrame({"A": [1, 2, 3], "B": [4, 5, 6]}) + column_name = "sum" + + expected_df = pd.DataFrame({column_name: [5, 7, 9]}) + mock_read_df.return_value = input_df + collapse_columns("in.csv", "out.csv", column_name) + result_df = mock_save_df.call_args[0][0] + + pd.testing.assert_frame_equal(result_df, expected_df) + + +@patch("utils.save_df") +@patch("utils.read_df") +@patch("checks.check_dir") +@patch("checks.check_path") +def test_output_dimension(_mock_check_path, + _mock_check_dir, mock_read_df, mock_save_df): + """ + Test that the output DataFrame has one column after merging and retains + the original number of rows. + """ + input_df = pd.DataFrame({ + "X": [1, 2], + "Y": [3, 4] + }) + column_name = "sum" + + mock_read_df.return_value = input_df + expected_rows = input_df.shape[0] + collapse_columns("in.csv", "out.csv", column_name) + result_df = mock_save_df.call_args[0][0] + + assert result_df.shape[1] == 1, "Output should have exactly one column" + assert result_df.shape[0] == expected_rows, "Output should have same number of rows as input" diff --git a/2025_Research_Software_Engineering_2/tests/test_logs.py b/2025_Research_Software_Engineering_2/tests/test_logs.py new file mode 100644 index 0000000..1af8093 --- /dev/null +++ b/2025_Research_Software_Engineering_2/tests/test_logs.py @@ -0,0 +1,66 @@ +""" +Unit tests for logging functions. +""" +from unittest.mock import patch +import logs + + +def test_log_processing(): + """Test logging of processing start.""" + with patch('logging.info') as mock_info: + logs.log_processing("ToolA") + mock_info.assert_called_once_with("Processing %s:", "ToolA") + + +def test_log_processed(): + """Test logging of processing completion.""" + with patch('logging.info') as mock_info: + logs.log_processed("ToolB") + mock_info.assert_called_once_with("Processed: %s", "ToolB") + + +def test_log_read(): + """Test logging of file read event.""" + with patch('logging.info') as mock_info: + logs.log_read("/path/to/file.txt") + mock_info.assert_called_once_with("Read: %s", "/path/to/file.txt") + + +def test_log_read_error(): + """Test logging of file read error.""" + with patch('logging.error') as mock_error: + logs.log_read_error("/path/to/missing_file.txt") + mock_error.assert_called_once_with( + "Failed to read: %s", "/path/to/missing_file.txt") + + +def test_log_saved(): + """Test logging of file save event.""" + with patch('logging.info') as mock_info: + logs.log_saved("/path/to/save_location.txt") + mock_info.assert_called_once_with( + "Saved: %s", "/path/to/save_location.txt") + + +def test_log_saved_error(): + """Test logging of file save error.""" + with patch('logging.error') as mock_error: + logs.log_saved_error("/path/to/save_location.txt") + mock_error.assert_called_once_with( + "Failed to save: %s", "/path/to/save_location.txt") + + +def test_log_parameter(): + """Test logging of parameter.""" + with patch('logging.info') as mock_info: + logs.log_parameter('parameter_name', str(999)) + mock_info.assert_called_once_with( + "Tool runs with %s: %s", "parameter_name", str(999) + ) + + +def test_log_intensive(): + """Test logging warning for ressource intensiveness.""" + with patch('logging.warning') as mock_info: + logs.log_intensive() + mock_info.assert_called_once_with("Tool is resource intensive") diff --git a/2025_Research_Software_Engineering_2/tests/test_merge_series.py b/2025_Research_Software_Engineering_2/tests/test_merge_series.py new file mode 100644 index 0000000..3b98072 --- /dev/null +++ b/2025_Research_Software_Engineering_2/tests/test_merge_series.py @@ -0,0 +1,23 @@ +"""Unit tests for the merge_series function""" + +import os +import pandas as pd +from merge_series import merge_series + + +def test_merge_series(local_tmp_path): + """ + Test that merge_series combines the data and creates + a non empty CSV.file. + """ + input_directory = "tests/data/sunshine_duration" + output_path = local_tmp_path / "merged.csv" + expected_path = "tests/data/sunshine_duration.csv" + + merge_series(input_directory, output_path) + expected_data = pd.read_csv(expected_path) + output_data = pd.read_csv(output_path) + + assert os.path.exists(output_path) + assert os.path.getsize(output_path) > 0 + pd.testing.assert_frame_equal(expected_data, output_data) diff --git a/2025_Research_Software_Engineering_2/tests/test_plot_change.py b/2025_Research_Software_Engineering_2/tests/test_plot_change.py new file mode 100644 index 0000000..7516318 --- /dev/null +++ b/2025_Research_Software_Engineering_2/tests/test_plot_change.py @@ -0,0 +1,40 @@ +''' +Unit tests for the plot_change function. + +These tests use mocking to isolate the function from file I/O, +logging, and plotting. They verify that the function behaves +correctly for both monthly and yearly data formats. +''' +from unittest import mock +import pandas as pd +import matplotlib +import plot_change +matplotlib.use("Agg") + + +@mock.patch("matplotlib.pyplot.savefig") +@mock.patch("plot_change.utils.read_df") +@mock.patch("plot_change.checks.check_empty") +@mock.patch("plot_change.checks.check_dir") +@mock.patch("plot_change.checks.check_path") +@mock.patch("plot_change.logs.log_processed") +@mock.patch("plot_change.logs.log_processing") +def test_plot_change_yearly(_mock_log_processing, _mock_log_processed, + _mock_check_path, _mock_check_dir, _mock_check_empty, + mock_read_df, mock_savefig, local_tmp_path): + """Test yearly data case without year_filter.""" + df = pd.DataFrame({ + "Year": [2018, 2019, 2020], + "Electricity feed-in": [100000, 110000, 120000] + }) + mock_read_df.return_value = df + + input_path = "fake_input.csv" + output_path = local_tmp_path / "output_yearly.png" + title = "Yearly Plot" + + plot_change.plot_change(str(input_path), str( + output_path), title, year_filter=None) + + mock_read_df.assert_called_once_with(input_path, ",", 0, None) + mock_savefig.assert_called_once_with(str(output_path)) diff --git a/2025_Research_Software_Engineering_2/tests/test_plot_geo.py b/2025_Research_Software_Engineering_2/tests/test_plot_geo.py new file mode 100644 index 0000000..07a94f6 --- /dev/null +++ b/2025_Research_Software_Engineering_2/tests/test_plot_geo.py @@ -0,0 +1,17 @@ +"""Unit tests for the plot_geo module.""" + +import os +from plot_geo import plot_geo + + +def test_plot_geo(local_tmp_path): # pylint: disable=redefined-outer-name + """Test that gpkg2png generates a non-empty PNG file""" + data_path = "tests/data/solarparcs.gpkg" + base_path = "tests/data/germany.gpkg" + output_path = local_tmp_path / "output.png" + title = "Test Map" + + plot_geo(data_path, base_path, output_path, title) + + assert os.path.exists(output_path) + assert os.path.getsize(output_path) > 0 diff --git a/2025_Research_Software_Engineering_2/tests/test_polygons2area.py b/2025_Research_Software_Engineering_2/tests/test_polygons2area.py new file mode 100644 index 0000000..e1391e9 --- /dev/null +++ b/2025_Research_Software_Engineering_2/tests/test_polygons2area.py @@ -0,0 +1,19 @@ +"""Unit tests for the polygons2area function in src.polygons2area.py""" + +import os +from polygons2area import polygons2area + + +def test_polygons2area(local_tmp_path): # pylint: disable=redefined-outer-name + """ + Test that polygons2area computes the area of input polygons and writes the result + to a non-empty output text file. + """ + input_path = "tests/data/clip.gpkg" + output_path = local_tmp_path / "output.txt" + unit = "m" + + polygons2area(input_path, output_path, unit) + + assert os.path.exists(output_path) + assert os.path.getsize(output_path) > 0 diff --git a/2025_Research_Software_Engineering_2/tests/test_trim.py b/2025_Research_Software_Engineering_2/tests/test_trim.py new file mode 100644 index 0000000..6c1c9c2 --- /dev/null +++ b/2025_Research_Software_Engineering_2/tests/test_trim.py @@ -0,0 +1,25 @@ +""" +Unit tests for the trim module's trimming functionality. +""" + +import pandas as pd +import trim + + +def test_trim_function(local_tmp_path): + """Test trimming rows from a CSV file using trim.trim.""" + input_csv = local_tmp_path / "input.csv" + output_csv = local_tmp_path / "output.csv" + sample_data = pd.DataFrame({ + "id": [1, 2, 3, 4, 5], + "name": ["Alice", "Bob", "Charlie", "David", "Eve"], + "value": [10, 20, 30, 40, 50] + }) + + sample_data.to_csv(input_csv, index=False) + trim.trim(str(input_csv), str(output_csv), "1", "2") + result = pd.read_csv(output_csv) + expected = sample_data.iloc[1:-2] + + pd.testing.assert_frame_equal(result.reset_index( + drop=True), expected.reset_index(drop=True)) diff --git a/2025_Research_Software_Engineering_2/tests/test_utils.py b/2025_Research_Software_Engineering_2/tests/test_utils.py new file mode 100644 index 0000000..bcadf0a --- /dev/null +++ b/2025_Research_Software_Engineering_2/tests/test_utils.py @@ -0,0 +1,94 @@ +"""Unit tests for utils.py""" + +from unittest.mock import Mock +import pytest +import pandas as pd +import geopandas as gpd + +import utils + + +def test_is_number(): + """Test if strings are correctly identified as numbers or not.""" + assert utils.is_number("42") is True + assert utils.is_number("3.14") is True + assert utils.is_number("abc") is False + assert utils.is_number("") is False + + +def test_parse_number(): + """Test parsing numeric strings to int or float and raising errors for invalid input.""" + assert utils.parse_number("42") == 42 + assert utils.parse_number("3.14") == 3.14 + with pytest.raises(ValueError): + utils.parse_number("not a number") + + +def test_request_response(): + """Test HTTP GET request and check if response has expected structure.""" + response = utils.request_response("https://httpbin.org/get") + assert response.status_code == 200 + assert "url" in response.json() + + +def test_parse_html(): + """Test parsing HTML content and extracting elements.""" + mock_response = Mock() + mock_response.text = "

Hello

" + result = utils.parse_html(mock_response) + assert result.p.text == "Hello" + + +def test_read_file(local_tmp_path): + """Test reading content from a file.""" + test_path = local_tmp_path / "test.txt" + test_path.write_text("test content") + content = utils.read_file(test_path) + assert content == "test content" + + +def test_save_file(local_tmp_path): + """Test saving content to a file.""" + test_path = local_tmp_path / "output.txt" + utils.save_file("saved content", test_path) + assert test_path.read_text() == "saved content" + + +def test_read_df(local_tmp_path): + """Test reading a CSV file into a pandas DataFrame.""" + csv_path = local_tmp_path / "test.csv" + csv_path.write_text("a,b\n1,2\n3,4") + df = utils.read_df(csv_path, seperator=",", header_line=0, icol=None) + assert not df.empty + + +def test_save_df(local_tmp_path): + """Test saving a pandas DataFrame to a CSV file.""" + df = pd.DataFrame({"x": [1, 2], "y": [3, 4]}) + path = local_tmp_path / "output.csv" + utils.save_df(df, path) + loaded = pd.read_csv(path, index_col=0) + pd.testing.assert_frame_equal(df, loaded) + + +def test_read_gdf(local_tmp_path): + """Test reading a GeoDataFrame from a GeoPackage file.""" + gdf = gpd.GeoDataFrame( + {'col': [1]}, geometry=gpd.points_from_xy([0], [0]), crs="EPSG:4326") + path = local_tmp_path / "test.gpkg" + gdf.to_file(path, driver="GPKG") + + result = utils.read_gdf(path) + assert isinstance(result, gpd.GeoDataFrame) + assert result.equals(gdf) + + +def test_save_gdf(local_tmp_path): + """Test saving a GeoDataFrame to a GeoPackage file.""" + gdf = gpd.GeoDataFrame( + {'col': [1]}, geometry=gpd.points_from_xy([0], [0]), crs="EPSG:4326") + path = local_tmp_path / "output.gpkg" + utils.save_gdf(gdf, path) + loaded = gpd.read_file(path) + assert isinstance(loaded, gpd.GeoDataFrame) + assert loaded.equals(gdf) diff --git a/2025_Research_Software_Engineering_2/tests/test_wgetdir.py b/2025_Research_Software_Engineering_2/tests/test_wgetdir.py new file mode 100644 index 0000000..40e98c9 --- /dev/null +++ b/2025_Research_Software_Engineering_2/tests/test_wgetdir.py @@ -0,0 +1,97 @@ +"""Unit test suite for the `wgetdir` module.""" +from urllib.parse import urljoin +from unittest import mock +from bs4 import BeautifulSoup +import wgetdir + + +def test_parse_urls(): + """Test that `parse_urls` correctly extracts valid file URLs from various HTML inputs.""" + html = ''' + + + File 1 + Folder + Local Path + Parent + Root + File 2 + + + ''' + soup = BeautifulSoup(html, 'html.parser') + soup_empty = BeautifulSoup("", 'html.parser') + + html_missing = ''' + + Missing href + Empty href + + ''' + soup_missing = BeautifulSoup(html_missing, 'html.parser') + + html_wrong_tag = ''' + +
Wrong tag
+ + ''' + soup_wrong_tag = BeautifulSoup(html_wrong_tag, 'html.parser') + + result1 = wgetdir.parse_urls(soup) + result2 = wgetdir.parse_urls(soup_empty) + result3 = wgetdir.parse_urls(soup_missing) + result4 = wgetdir.parse_urls(soup_wrong_tag) + + assert result1 == [ + "https://example.com/file1.txt", + "https://example.com/file2.pdf" + ] + assert not result2 + assert result3 == [""] + assert not result4 + + +def test_wget(local_tmp_path): + """Test that `wget` downloads a file from a URL.""" + url = "https://example.com/data.txt" + expected_file = local_tmp_path / "data.txt" + fake_content = "This is fake downloaded content." + + with mock.patch("wgetdir.checks.check_empty") as _, \ + mock.patch("wgetdir.checks.check_dir") as _, \ + mock.patch("wgetdir.utils.request_response") as mock_request: + + mock_response = mock.Mock() + mock_response.text = fake_content + mock_request.return_value = mock_response + + wgetdir.wget(url, str(local_tmp_path)) + + assert expected_file.exists(), "File was not created" + with expected_file.open("r") as f: + content = f.read() + assert content == fake_content, "File content does not match" + + +def test_wgetdir(local_tmp_path): + """Test that `wgetdir` processes URL by retrieving all contained files.""" + directory_url = "https://example.com/data/" + urls = ["file1.txt", "file2.pdf"] + full_urls = [urljoin(directory_url, u) for u in urls] + + with mock.patch("wgetdir.logs.log_processing"), \ + mock.patch("wgetdir.logs.log_processed"), \ + mock.patch("wgetdir.checks.check_empty"), \ + mock.patch("wgetdir.checks.check_dir"), \ + mock.patch("wgetdir.utils.request_response") as mock_response, \ + mock.patch("wgetdir.utils.parse_html") as _, \ + mock.patch("wgetdir.parse_urls") as mock_parse_urls, \ + mock.patch("wgetdir.wget") as mock_wget: + + mock_parse_urls.return_value = urls + mock_response.return_value = mock.Mock() + + wgetdir.wgetdir(directory_url, str(local_tmp_path)) + + calls = [mock.call(url, str(local_tmp_path)) for url in full_urls] + mock_wget.assert_has_calls(calls, any_order=False) diff --git a/2025_Research_Software_Engineering_2/workflow/rules/analysis.smk b/2025_Research_Software_Engineering_2/workflow/rules/analysis.smk new file mode 100644 index 0000000..b39c929 --- /dev/null +++ b/2025_Research_Software_Engineering_2/workflow/rules/analysis.smk @@ -0,0 +1,102 @@ +# ----------------------------------------------------- # +# Calculate Energy and Analysis Workflow # +# ----------------------------------------------------- # + + +# Processes photovoltaic and solar datasets to calculate and calculate yearly energy +rule calculate_theoretical_energy: + input: + area = f"{RESULTS}/solarparcs_area.txt", + sunshine_duration = f"{RESULTS}/sunshine_duration.csv" + output: + f"{RESULTS}/solarparcs_energy.csv" + shell: + f"{PYTHON} {SRC}/calculate_energy.py {{input.area}} {{input.sunshine_duration}} {{output}} {EFFICIENCY}" + + +# Sums each row across all columns of the solaparc data and writes the result as a single-column file +rule collapse_columns_theoretical_energy: + input: + f"{RESULTS}/solarparcs_energy.csv" + output: + f"{RESULTS}/solarparcs_energy_yearly.csv" + params: + column_name = "Energy [kWh]" + shell: + f'{PYTHON} {SRC}/collapse_columns.py {{input}} {{output}} "{{params.column_name}}"' + + +# trim rows from the beginning and end of the solarparc CSV file and save the result +rule trim_theoretical_energy: + input: + f"{RESULTS}/solarparcs_energy_yearly.csv" + output: + f"{RESULTS}/solarparcs_energy_yearly_trimmed.csv" + params: + arg1 = "67", + arg2 = "0" + shell: + f"{PYTHON} {SRC}/trim.py {{input}} {{output}} {{params.arg1}} {{params.arg2}}" + + +# plots the yearly changes of solarparc energy +rule plot_yearly_energy_change: + input: + f"{RESULTS}/solarparcs_energy_yearly_trimmed.csv" + output: + f"{REPORT}/solarparcs_energy_yearly_trimmed.png" + params: + title = "Theoretical Energy 2018-2024", + year_filter=None + shell: + f'{PYTHON} {SRC}/plot_change.py {{input}} {{output}} "{{params.title}}" {{params.year_filter}}' + + +# plots the yearly changes of phtovoltaic energy +rule plot_yearly_change_photovoltaic: + input: + f"{RESULTS}/pv_data_cleaned_trimmed_collapsed.csv" + output: + f"{REPORT}/pv_data_cleaned_trimmed_collapsed.png" + params: + title = "Photovoltaic", + year_filter=None + shell: + f'{PYTHON} {SRC}/plot_change.py {{input}} {{output}} "{{params.title}}" {{params.year_filter}}' + + +# Calculates and compares yearly energy sums from actual and theoretical solar data +rule calculate_difference: + input: + actual = f"{RESULTS}/pv_data_cleaned_trimmed_collapsed.csv", + theoretical = f"{RESULTS}/solarparcs_energy_yearly_trimmed.csv" + output: + f"{RESULTS}/energy_difference.csv" + shell: + f"{PYTHON} {SRC}/calculate_difference.py {{input.actual}} {{input.theoretical}} {{output}}" + + +# plots the monthly change of photovoltaic energy +rule plot_monthly_change_photovoltaic: + input: + f"{RESULTS}/pv_data_cleaned.csv" + output: + f"{REPORT}/pv_monthly_change_{YEAR}.png" + params: + title = "'Monthly Change Photovoltaic'", + year_filter={YEAR} + shell: + f'{PYTHON} {SRC}/plot_change.py {{input}} {{output}} "{{params.title}}" "{{params.year_filter}}"' + + +# Plots yearly differences between actual and theoretical photovoltaic energy +rule plot_energy difference: + input: + f"{RESULTS}/energy_difference.csv" + output: + f"{REPORT}/energy_difference.png" + params: + title = "Yearly Energy Difference: Actual – Theoretical (kWh)", + year_filter=None + shell: + f'{PYTHON} {SRC}/plot_change.py {{input}} {{output}} "{{params.title}}" {{params.year_filter}}' diff --git a/2025_Research_Software_Engineering_2/workflow/rules/photovoltaic_data_processing.smk b/2025_Research_Software_Engineering_2/workflow/rules/photovoltaic_data_processing.smk new file mode 100644 index 0000000..3818299 --- /dev/null +++ b/2025_Research_Software_Engineering_2/workflow/rules/photovoltaic_data_processing.smk @@ -0,0 +1,41 @@ +# ----------------------------------------------------- # +# Processing of Photovoltaic Data Workflow # +# ----------------------------------------------------- # + + + +# Processes and cleans the photovoltaic CSV dataset, then extracts specific data types "Electricity feed-in systems" +rule load_and_clean_photovoltaic_data: + input: + csv_in = f"{DATA}/pv_data.csv" + output: + csv_out = f"{RESULTS}/pv_data_cleaned.csv" + params: + label = "Electricity feed-in" + shell: + r'"{PYTHON}" "{SRC}/clean_pv_data.py" "{input.csv_in}" "{output.csv_out}" "{params.label}"' + + +# trim rows from the beginning and end of the photovoltaic CSV file and save the result +rule trim_photovoltaic: + input: + f"{RESULTS}/pv_data_cleaned.csv" + output: + f"{RESULTS}/pv_data_cleaned_trimmed.csv" + params: + arg1 = "0", + arg2 = "1" + shell: + f"{PYTHON} {SRC}/trim.py {{input}} {{output}} {{params.arg1}} {{params.arg2}}" + + +# Sums each row across all columns of the photovoltaic data and writes the result as a single-column file +rule collapse_columns_photovoltaic: + input: + csv_in = f"{RESULTS}/pv_data_cleaned_trimmed.csv" + output: + csv_out = f"{RESULTS}/pv_data_cleaned_trimmed_collapsed.csv" + params: + column_name = "Energy [kWh]" + shell: + f'{PYTHON} "{SRC}/collapse_columns.py" "{{input.csv_in}}" "{{output.csv_out}}" "{{params.column_name}}"' diff --git a/2025_Research_Software_Engineering_2/workflow/rules/solarparc_data_processing.smk b/2025_Research_Software_Engineering_2/workflow/rules/solarparc_data_processing.smk new file mode 100644 index 0000000..84cb660 --- /dev/null +++ b/2025_Research_Software_Engineering_2/workflow/rules/solarparc_data_processing.smk @@ -0,0 +1,35 @@ +# ----------------------------------------------------- # +# Processing of Solarparc Data Workflow # +# ----------------------------------------------------- # + + +# performs spatial clipping of Geopackages using GeoPandas +rule load_solarparc_and_border_data: + input: + solarparcs = f"{DATA}/solarparcs.gpkg", + germany = f"{DATA}/germany.gpkg" + output: + f"{RESULTS}/solarparcs_clipped.gpkg" + shell: + f"{PYTHON} {SRC}/clip.py {{input.solarparcs}} {{input.germany}} {{output}}" + + +# Reads geographic data, plots it on a base map, and saves the visualization as an image +rule plot_solarparc_map: + input: + clipped = f"{RESULTS}/solarparcs_clipped.gpkg", + germany = f"{DATA}/germany.gpkg" + output: + f"{REPORT}/solarparcs.png" + shell: + f'{PYTHON} {SRC}/plot_geo.py {{input.clipped}} {{input.germany}} {{output}} "Solarparcs in Germany 2025"' + + +# Calculate and compare yearly energy sums from actual and theoretical solar data +rule calculate_area: + input: + f"{RESULTS}/solarparcs_clipped.gpkg" + output: + f"{RESULTS}/solarparcs_area.txt" + shell: + f"{PYTHON} {SRC}/polygons2area.py {{input}} {{output}} m" diff --git a/2025_Research_Software_Engineering_2/workflow/rules/sunshine_duration_data_processing.smk b/2025_Research_Software_Engineering_2/workflow/rules/sunshine_duration_data_processing.smk new file mode 100644 index 0000000..e15f562 --- /dev/null +++ b/2025_Research_Software_Engineering_2/workflow/rules/sunshine_duration_data_processing.smk @@ -0,0 +1,59 @@ +# ----------------------------------------------------- # +# Processing of Sunshine Duration Data Workflow # +# ----------------------------------------------------- # + + +# Downloads all files from a URL to a local directory +rule load_sunshine_duration_data: + output: + directory(f"{RESULTS}/{SUNSHINE_DATA}/") + shell: + f'{PYTHON} {SRC}/wgetdir.py "https://opendata.dwd.de/climate_environment/CDC/regional_averages_DE/monthly/sunshine_duration/" {{output}}' + + +# Combines twelve CSV files from a directory by selecting German averages into one dataframe +rule merge_series: + input: + f"{RESULTS}/{SUNSHINE_DATA}/" + output: + f"{RESULTS}/sunshine_duration.csv" + shell: + f"{PYTHON} {SRC}/merge_series.py {{input}} {{output}}" + + +# Sums each row across all columns of the sunshiine duration data and write the result as a single-column file +rule collapse_columns_sunshine_duration: + input: + f"{RESULTS}/sunshine_duration.csv" + output: + f"{RESULTS}/sunshine_duration_yearly.csv" + params: + column_name = "Duration [h]" + shell: + f'{PYTHON} {SRC}/collapse_columns.py {{input}} {{output}} "{{params.column_name}}"' + + +# trim rows from the beginning and end of the solarparc CSV file and save the result +rule trim_sunshine_duration: + input: + f"{RESULTS}/sunshine_duration_yearly.csv" + output: + f"{RESULTS}/sunshine_duration_yearly_trimmed.csv" + params: + arg1 = "67", + arg2 = "0" + shell: + f"{PYTHON} {SRC}/trim.py {{input}} {{output}} {{params.arg1}} {{params.arg2}}" + + +# plots the yearly changes of sunshine duration +rule plot_yearly_change_sunshine: + input: + f"{RESULTS}/sunshine_duration_yearly_trimmed.csv" + output: + f"{REPORT}/sunshine_duration_yearly_trimmed.png" + params: + title = "Sunshine Duration 2018-2024", + year_filter = None + shell: + f'{PYTHON} {SRC}/plot_change.py {{input}} {{output}} "{{params.title}}" {{params.year_filter}}' diff --git a/2025_Research_Software_Engineering_2/workflow/scripts/__init__.py b/2025_Research_Software_Engineering_2/workflow/scripts/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/2025_Research_Software_Engineering_2/workflow/scripts/calculate_difference.py b/2025_Research_Software_Engineering_2/workflow/scripts/calculate_difference.py new file mode 100644 index 0000000..c04c863 --- /dev/null +++ b/2025_Research_Software_Engineering_2/workflow/scripts/calculate_difference.py @@ -0,0 +1,67 @@ +""" +Calculate and compare yearly energy sums from actual photovoltaic and theoretical solar datasets. + +This script reads two CSV datasets containing monthly energy values per year — one representing +actual photovoltaic energy measurements, the other representing theoretical solar radiation +estimates. It sums the monthly values per year, and merges the results into a single output file +for comparison or further analysis. + +Usage: + python calculate_difference.py + + +Arguments: + actual_energy_path (str or Path): path to CSV file with actual photovoltaic energy data. + theoretical_energy_path (str or Path): path to CSV file with theoretical solar radiation + data. + output_path (str or Path): destination path for the merged yearly sums output + CSV. +""" + +import os +import sys +import pandas as pd +import utils +import checks +import logs + + +def calc_energy_difference(df_actual_path, df_theoretical_path, output_path): + """ + Calculate the absolute yearly energy difference between actual and theoretical datasets. + + Reads two CSV files with yearly energy data, computes the absolute difference + in energy values for each common year, and saves the result as a CSV. + + Args: + df_actual_path (str or Path): Path to the CSV file with actual photovoltaic energy + data. + df_theoretical_path (str or Path): Path to the CSV file with theoretical solar radiation + data. + output_path (str or Path): Path where the output CSV with yearly energy differences + will be saved. + + Returns: + None: The result is saved to `output_path`. + """ + logs.log_processing(os.path.basename(__file__)) + + checks.check_path(df_actual_path) + checks.check_path(df_theoretical_path) + checks.check_dir(output_path) + + df_actual = utils.read_df(df_actual_path, ",", 0, None) + df_theoretical = utils.read_df(df_theoretical_path, ",", 0, None) + + diff_difference = abs( + df_actual[df_actual.columns[1]] - df_theoretical[df_theoretical.columns[1]]) + df_diff = pd.DataFrame({ + 'year': df_actual['year'], + 'Energy Difference [kWh]': diff_difference}) + utils.save_df(df_diff, output_path, False) + logs.log_processed(os.path.basename(__file__)) + + +if __name__ == "__main__": + checks.check_args(4, __doc__) + calc_energy_difference(sys.argv[1], sys.argv[2], sys.argv[3]) diff --git a/2025_Research_Software_Engineering_2/workflow/scripts/calculate_energy.py b/2025_Research_Software_Engineering_2/workflow/scripts/calculate_energy.py new file mode 100644 index 0000000..feca20c --- /dev/null +++ b/2025_Research_Software_Engineering_2/workflow/scripts/calculate_energy.py @@ -0,0 +1,64 @@ +""" +Calculate theoretical energy generation of solar parks. + +This script reads the area of solar parks (in m²) and sunshine duration (in hours), +then calculates the theoretical energy produced (in kWh) using a given efficiency. + +Usage: + python calculate_energy.py + +Arguments: + area_data_path (str or Path): Path to the input file with solar park area data. + sunshine_data_path (str or Path): Path to the input file with sunshine duration data. + output_data_path (str or Path): Path where the output file will be saved. + efficiency (float): Average efficiency of PV panels (as a decimal, e.g. 0.15 + for 15%) +""" + +import os +import sys +import utils +import checks +import logs + + + +def calculate_energy(area_path, sunshine_path, output_path, efficiency): + """ + Calculate the theoretical energy production of solar parks in kWh. + + Reads input files with solar park area and sunshine duration, then computes + energy using the formula: energy = area * sunshine_duration * power_per_m2 * efficiency. + + Args: + area_path (str or Path): Path to the input file with area data (m²). + sunshine_path (str or Path): Path to the input file with sunshine duration data (hours). + output_path (str or Path): Path to save the calculated energy output CSV. + efficiency (float): Average efficiency of PV panels (decimal). + + Returns: + None: Saves the calculated energy DataFrame to the specified output path. + """ + logs.log_processing(os.path.basename(__file__)) + logs.log_parameter('efficiency', str(efficiency)) + checks.check_path(area_path) + checks.check_path(sunshine_path) + checks.check_dir(output_path) + checks.check_empty(efficiency) + content = utils.read_file(area_path) + area = utils.parse_number(content) + sunshine_data = utils.read_df(sunshine_path, ",", 0, 0) + efficiency_number = float(efficiency) + power_per_m2 = 0.1 + + # main calculation + factor = power_per_m2 * area * efficiency_number + energy = sunshine_data * factor + + utils.save_df(energy, output_path) + logs.log_processed(os.path.basename(__file__)) + + +if __name__ == "__main__": + checks.check_args(5, __doc__) + calculate_energy(sys.argv[1], sys.argv[2], sys.argv[3], sys.argv[4]) diff --git a/2025_Research_Software_Engineering_2/workflow/scripts/checks.py b/2025_Research_Software_Engineering_2/workflow/scripts/checks.py new file mode 100644 index 0000000..99d5f5f --- /dev/null +++ b/2025_Research_Software_Engineering_2/workflow/scripts/checks.py @@ -0,0 +1,176 @@ +""" +Basic input validation checks. + +Functions to check for : +- non-empty variables, +- existing file or directory paths +- correct command-line argument count +- two CRS's if they are equal +- dataframe valid and not empty +- if GeoDataFrame is valid and not empty +- if variable is member of a list +""" + +import os +import sys +from pathlib import Path +import pandas as pd +import geopandas as gpd + + +def check_empty(variable): + """ + Checks if variable is not empty. + + Arguments: + variable: variable to check. + + Returns: + None + + Raises: + ValueError: If the variable is empty. + """ + if not variable: + raise ValueError("Variable is empty") + + +def check_path(path): + """ + Checks if path exists. + + Arguments: + path (str): path to check. + + Returns: + None + + Raises: + FileNotFoundError: If the path does not exist. + """ + if not os.path.exists(path): + raise FileNotFoundError(f"Invalid path: {path}") + + +def check_dir(path): + """ + Checks if directory exists. + + Arguments: + path (str): path to check. + + Returns: + None + + Raises: + FileNotFoundError: If the directory's parent path does not exist. + """ + if not Path(path).parent.exists(): + raise FileNotFoundError(f"Invalid directory path: {path}") + + +def check_args(num_arg, output): + """ + Checks sys arguments length against expected. + + Args: + num_arg (int): expected number of arguments. + output (str): string to be printed in case of check failure. + + Returns: + None + + Raises: + RuntimeError: If the number of arguments does not match `num_arg`. + """ + if len(sys.argv) != num_arg: + raise RuntimeError(output) + + +def check_crs(crs1, crs2): + """ + Checks two CRS's if they are equal. + + Arguments: + crs1: first CRS. + crs2: second CRS. + + Returns: + None + + Raises: + ValueError: If CRS's are not equal. + """ + if crs1 != crs2: + raise ValueError("CRS missmatch.") + + +def check_df(df): + """ + Checks if DataFrame is valid and not empty. + + Arguments: + df: DataFrame to check. + + Returns: + None + + Raises: + TypeError: If not a DataFrame + ValueError: If DataFrame is empty + ValueError: If all values in the DataFrame are NaN + """ + if not isinstance(df, pd.DataFrame): + raise TypeError("Not a DataFrame.") + + if df.empty: + raise ValueError("DataFrame is empty.") + + if df.isna().all().all(): + raise ValueError("DataFrame contains only NaN values.") + + +def check_gdf(gdf): + """ + Checks if GeoDataFrame is valid and not empty. + + Arguments: + gdf: GeoDataFrame to check. + + Returns: + None + + Raises: + TypeError: if not an GeoDataFrame + ValueError: If GeoDataFrame is empty + ValueError: If includes empty geometries + + """ + if not isinstance(gdf, gpd.GeoDataFrame): + raise TypeError("Not a GeoDataFrame.") + + if gdf.empty: + raise ValueError("GeoDataFrame is empty.") + + if gdf.geometry.isna().all(): + raise ValueError("GeoDataFrame includes empty geometries.") + + +def check_member(variable, members): + """ + Check if variable is member of a list. + + Arguments: + variable: to check + members (list): to check against. + + Returns: + None + + Raises: + ValueError: If variable is not member of allowed varibales. + + """ + if variable not in members: + raise ValueError(f"Invalid value: { + variable}. Must be one of: {members}") diff --git a/2025_Research_Software_Engineering_2/workflow/scripts/clean_pv_data.py b/2025_Research_Software_Engineering_2/workflow/scripts/clean_pv_data.py new file mode 100644 index 0000000..9ee5bd9 --- /dev/null +++ b/2025_Research_Software_Engineering_2/workflow/scripts/clean_pv_data.py @@ -0,0 +1,85 @@ +""" +Process and clean photovoltaic dataset from Destatis. + +This script reads a CSV dataset (exported from the Destatis web portal), removes +unnecessary table structures caused by web-to-CSV conversion, and saves a cleaned version. +It also allows extracting a subset of the data, e.g. "Electricity feed-in systems", +"Net nominal capacity", or "Electricity feed-in". + +Original dataset source: +https://www-genesis.destatis.de/datenbank/online/statistic/43312/table/43312-0001 + +Usage: + python clean_pv_data.py + +Arguments: + dataset_path (str or Path): Path to the raw CSV dataset file. + save_path (str or Path): Path where the cleaned CSV will be saved. + extracted_type (str): Type of data to extract (e.g., "Electricity feed-in"). +""" +import os +import sys +import pandas as pd +import utils +import checks +import logs + + + +def clean_pv_data(input_path, output_path, extracted_type): + """ + Clean and preprocess the photovoltaic dataset from Destatis. + + This function selects relevant columns, renames them for clarity, + defines categorical ordering for months and data types, sorts the data, + and extracts the specified subset. The result is saved as a pivot table CSV. + + Args: + input_path (str or Path): Path to the raw input CSV file. + output_path (str or Path): Path to save the cleaned and extracted CSV. + extracted_type (str): The category of data to extract (e.g., "Electricity feed-in"). + + Returns: + None: The processed DataFrame is saved to `output_path`. + """ + + logs.log_processing(os.path.basename(__file__)) + + checks.check_path(input_path) + checks.check_dir(output_path) + checks.check_empty(extracted_type) + + df = utils.read_df(input_path, seperator=";", header_line=0, icol=None) + + df_relevant = df[["time", "1_variable_attribute_label", + "value", "value_variable_label"]] + df_cleaned = df_relevant.rename(columns={ + 'time': 'year', + '1_variable_attribute_label': 'month', + 'value_variable_label': 'type' + }) + monthly_order = ["January", "February", "March", "April", "May", "June", + "July", "August", "September", "October", "November", "December"] + # Units: [number, MW, Mwh] + type_order = ["Electricity feed-in systems", + "Net nominal capacity", "Electricity feed-in"] + + df_cleaned['month'] = pd.Categorical( + df_cleaned['month'], categories=monthly_order, ordered=True) + df_cleaned['type'] = pd.Categorical( + df_cleaned['type'], categories=type_order, ordered=True) + df_cleaned = df_cleaned.sort_values( + by=['year', 'month', 'type'], ascending=True) + + extracted_df = df_cleaned[df_cleaned["type"] == extracted_type] + pivot_df = extracted_df.pivot( + index="year", columns="month", values="value") + + checks.check_df(pivot_df) + utils.save_df(pivot_df, output_path) + logs.log_processed(os.path.basename(__file__)) + + +if __name__ == "__main__": + checks.check_args(4, __doc__) + clean_pv_data(sys.argv[1], sys.argv[2], sys.argv[3]) diff --git a/2025_Research_Software_Engineering_2/workflow/scripts/clip.py b/2025_Research_Software_Engineering_2/workflow/scripts/clip.py new file mode 100644 index 0000000..1b85b8e --- /dev/null +++ b/2025_Research_Software_Engineering_2/workflow/scripts/clip.py @@ -0,0 +1,59 @@ +""" +Perform spatial clipping of geospatial data using GeoPandas. + +This script reads an input geospatial file and an overlay file, +clips the input to the overlay boundaries, and saves the clipped +result as a GeoPackage file. + +Usage: + python clip.py + +Arguments: + input_path (str or Path): Path to the input geospatial file (e.g., GeoPackage, shapefile). + overlay_path (str or Path): Path to the overlay geospatial file used for clipping. + output_path (str or Path): Path to save the clipped output as a GeoPackage (.gpkg). +""" + +import os +import sys +import geopandas as gpd +import utils +import checks +import logs + + +def clip(input_path, overlay_path, output_path): + """ + Clips input to overlay and exports result. Includes Errorhandling. + + Performs spatial clipping of input data using the geometry boundaries + from the overlay data, and exports the clipped result to a GeoPackage. + + Arguments: + input_path (str or Path): Path to the input file (.gpkg). + overlay_path (str or Path): Path to the clipping layer (.gpkg). + output_path (str or Path): Path to save the clipped output (.gpkg). + + Returns: + None: The processed clipped output is saved to `output_path`. + """ + logs.log_processing(os.path.basename(__file__)) + logs.log_intensive() + checks.check_path(input_path) + checks.check_path(overlay_path) + checks.check_dir(output_path) + + input_data = utils.read_gdf(input_path) + overlay_data = utils.read_gdf(overlay_path) + + checks.check_crs(input_data.crs, overlay_data.crs) + + clipped_data = gpd.clip(input_data, overlay_data) + checks.check_gdf(clipped_data) + utils.save_gdf(clipped_data, output_path) + logs.log_processed(os.path.basename(__file__)) + + +if __name__ == "__main__": + checks.check_args(4, __doc__) + clip(sys.argv[1], sys.argv[2], sys.argv[3]) diff --git a/2025_Research_Software_Engineering_2/workflow/scripts/collapse_columns.py b/2025_Research_Software_Engineering_2/workflow/scripts/collapse_columns.py new file mode 100644 index 0000000..91f5e86 --- /dev/null +++ b/2025_Research_Software_Engineering_2/workflow/scripts/collapse_columns.py @@ -0,0 +1,46 @@ +""" +This script reads a tabular CSV dataset, sums the values across all columns for each row, +and writes the resulting single-column DataFrame to an output file. + +Usage: + python collapse_columns.py + +Arguments: + input_path (str or Path): Path to the input CSV file containing the original tabular data. + output_path (str or Path): Path where the collapsed output CSV file will be saved. + column_name (str): Name of the column in the output file representing the summed values. +""" +import os +import sys +import utils +import checks +import logs + + +def collapse_columns(input_path, output_path, column_name): + """ + Reads a tabular dataset and collapses each row into a single value by summing across columns. + The result is written as a single-column DataFrame to the output path. + + Args: + input_path (str or Path): Path to the input CSV file. + output_path (str or Path): Path where the output CSV file will be saved. + column_name (str): Name of the resulting summed column. + + Returns: + None: The resulting summed dataframe is saved to `output_path` + """ + logs.log_processing(os.path.basename(__file__)) + logs.log_parameter("column_name", str(column_name)) + checks.check_path(input_path) + checks.check_dir(output_path) + + data = utils.read_df(input_path, ",", 0, 0) + data = data.sum(axis=1).to_frame(name=column_name) + utils.save_df(data, output_path) + logs.log_processed(os.path.basename(__file__)) + + +if __name__ == "__main__": + checks.check_args(4, __doc__) + collapse_columns(sys.argv[1], sys.argv[2], sys.argv[3]) diff --git a/2025_Research_Software_Engineering_2/workflow/scripts/logs.py b/2025_Research_Software_Engineering_2/workflow/scripts/logs.py new file mode 100644 index 0000000..0768ce3 --- /dev/null +++ b/2025_Research_Software_Engineering_2/workflow/scripts/logs.py @@ -0,0 +1,131 @@ +""" +Logging setup and helper functions for processing events. + +Configures logging to file and console, with functions +to log start, completion, and saving steps of processing. +Containing logs: +- processing +- processed +- read +- read error +- saved +- saved error +- parameter +- intensive +""" + +import logging + +logging.basicConfig( + level=logging.INFO, + format="%(asctime)s - %(levelname)s - %(message)s", + handlers=[ + logging.FileHandler("log.txt"), + logging.StreamHandler() + ] +) + + +def log_processing(tool_name): + """ + Logs the start of processing for a given tool. + + Args: + tool_name (str): Name of the tool being processed. + + Returns: + None + """ + logging.info("Processing %s:", tool_name) + + +def log_processed(tool_name): + """ + Logs the successful completion of processing for a given tool. + + Args: + tool_name (str): Name of the tool that has been processed. + + Returns: + None + """ + logging.info("Processed: %s", tool_name) + + +def log_read(path): + """ + Logs the reading of a file from a given path. + + Arguments: + path (str): Path to file which were read. + + Returns: + None + """ + logging.info("Read: %s", path) + + +def log_read_error(path): + """ + Logs the reading error of a given path. + + Arguments: + path (str): Path were the file should be read. + + Returns: + None + """ + logging.error("Failed to read: %s", path) + + +def log_saved(path): + """ + Logs the saving of output to a given path. + + Args: + path (str): Path where the output was saved. + + Returns: + None + """ + logging.info("Saved: %s", path) + + +def log_saved_error(path): + """ + Logs the saving error of output to a given path. + + Arguments: + path (str): Path were the output should be saved. + + Returns: + None + """ + logging.error("Failed to save: %s", path) + + +def log_parameter(parameter_name, parameter_value): + """ + Logs a parameter. + + Arguments: + parameter_name (str): Parameter name with which the tool is called. + parameter_value (str): Parameter value with which the tool is called. + + Returns: + None + """ + + logging.info("Tool runs with %s: %s", parameter_name, parameter_value) + + +def log_intensive(): + """ + Logs warning for resource intensiveness. + + Arguments: + None + Returns: + None + """ + logging.warning("Tool is resource intensive") diff --git a/2025_Research_Software_Engineering_2/workflow/scripts/merge_series.py b/2025_Research_Software_Engineering_2/workflow/scripts/merge_series.py new file mode 100644 index 0000000..049355e --- /dev/null +++ b/2025_Research_Software_Engineering_2/workflow/scripts/merge_series.py @@ -0,0 +1,65 @@ +""" +This script combines monthly sunshine duration data from twelve CSV files +in a given directory by extracting the German average values and merging +them into a single DataFrame. The combined data is then saved as a CSV file. + +Original datasets from: +https://opendata.dwd.de/climate_environment/CDC/regional_averages_DE/monthly/sunshine_duration/ + +Usage: + python merge_series.py + +Arguments: + input_directory (Path or str): Directory containing the twelve monthly CSV input files. + output_path (Path or str): Path where the combined CSV output file will be saved. +""" + +import os +import sys +import pandas as pd +import utils +import checks +import logs + + +def merge_series(input_directory, output_path): + """ + Extracts the German average sunshine duration series from twelve monthly CSV files + in the specified directory and combines them into a single pandas DataFrame. + The DataFrame columns represent months, and rows represent years. + + Args: + input_directory (Path or str): Directory containing the input CSV files. + save_path (Path or str): File path to save the combined CSV output. + + Returns: + None: The resulting combined dataframe is saved to `output_path` + """ + logs.log_processing(os.path.basename(__file__)) + checks.check_path(input_directory) + checks.check_dir(output_path) + + files = os.listdir(input_directory) + checks.check_empty(files) + + txt_files = sorted([f for f in files if f.lower().endswith('.txt')]) + + series_list = [] + month_list = ["January", "February", "March", "April", "May", "June", + "July", "August", "September", "October", "November", "December"] + + for file, month in zip(txt_files, month_list): + data = utils.read_df(input_directory+"/"+file, ";", 1, 0) + data = data["Deutschland"] + data.name = month + series_list.append(data) + df = pd.concat(series_list, axis=1) + df = df[df.index != 2025] + + utils.save_df(df, output_path) + logs.log_processed(os.path.basename(__file__)) + + +if __name__ == "__main__": + checks.check_args(3, __doc__) + merge_series(sys.argv[1], sys.argv[2]) diff --git a/2025_Research_Software_Engineering_2/workflow/scripts/plot_change.py b/2025_Research_Software_Engineering_2/workflow/scripts/plot_change.py new file mode 100644 index 0000000..17f5f7a --- /dev/null +++ b/2025_Research_Software_Engineering_2/workflow/scripts/plot_change.py @@ -0,0 +1,83 @@ +''' +This script visualizes changes in energy production or sunshine duration, +either monthly or yearly, using line plots based on a CSV input file. + +Depending on the structure of the input data, the script creates: +- A monthly line plot for a selected year if the CSV contains one row per year + and one column per month. +- A yearly line plot if the CSV contains only two columns: year and value. + +Usage: + python plot_change.py <year_filter> + +Arguments: + input_path (Path or str): Path to the input CSV file containing energy or sunshine data. + output_path (Path or str): File path where the generated plot (e.g., PNG) will be saved. + title (str): Title of the plot. + year_filter (str or int): Year to select from the dataset for monthly plots. + Required if the input contains monthly values. + +''' +import os +import sys +import matplotlib.pyplot as plt +import utils +import checks +import logs + + +def plot_change(input_path, output_path, title, year_filter=None): + """ + Generate and save a line plot showing energy or sunshine changes over time. + + If the input contains multiple columns (i.e., monthly values), this function will + extract the row corresponding to `year_filter` and plot the monthly trend. + Otherwise, it assumes the data is already in a year-to-value format. + + Args: + input_path (Path or str): Path to the input CSV file. + output_path (Path or str): Path to save the generated plot image. + title (str): Title of the plot. + year_filter (str or int, optional): Year to filter for when plotting monthly data. + + Returns: + None: The generated diagram is saved as an image file at output_path. + """ + logs.log_processing(os.path.basename(__file__)) + checks.check_path(input_path) + checks.check_dir(output_path) + checks.check_empty(title) + + data = utils.read_df(input_path, ",", 0, None) + + if data.shape[1] > 2: + x_label = "Month" + y_label = "Energy [kWh]" + + data = data.set_index("year") + + x_ticks = data.columns + x_values = range(len(data.columns)) + y_value = data.transpose()[int(year_filter)] + else: + x_label = data.columns[0] + y_label = data.columns[-1] + x_ticks = data.iloc[:, 0].values.astype(str) + x_values = range(len(x_ticks)) + y_value = data.iloc[:, 1].values + + figure, ax = plt.subplots() + ax.set_title(title) + ax.set_xlabel(x_label) + ax.set_ylabel(y_label) + ax.set_xticks(range(len(x_ticks))) + ax.set_xticklabels(x_ticks, rotation=45) + ax.plot(x_values, y_value, 'o:') + figure.tight_layout() + plt.savefig(output_path) + logs.log_processed(os.path.basename(__file__)) + + +if __name__ == "__main__": + checks.check_args(5, __doc__) + plot_change(sys.argv[1], sys.argv[2], sys.argv[3], sys.argv[4]) diff --git a/2025_Research_Software_Engineering_2/workflow/scripts/plot_geo.py b/2025_Research_Software_Engineering_2/workflow/scripts/plot_geo.py new file mode 100644 index 0000000..fa9586b --- /dev/null +++ b/2025_Research_Software_Engineering_2/workflow/scripts/plot_geo.py @@ -0,0 +1,61 @@ +""" +This script reads geographic data files, creates a map visualization by +plotting the data on top of a base map, and saves the resulting map as +an image file. + +Usage: + python plot_geo.py <input_path> <base_path> <output_path> <title> + +Arguments: + input_path (str or Path): Path to the geographic data file to be plotted. + base_path (str or Path): Path to the base map geographic data file. + output_path (str or Path): Path where the generated map image will be saved. + title (str): Title for the map. +""" + +import os +import sys +import matplotlib.pyplot as plt +import utils +import checks +import logs + + +def plot_geo(input_path, base_path, output_path, title): + """ + Generate a map image by plotting geographic data over a base map. + + Arguments: + input_path (str): Path to the geographic data file to be plotted. + base_path (str): Path to the base map geographic data file. + output_path (str): Path where the generated map image will be saved. + title (str): Title of the map for the plot. + + Returns: + None: The generated map is saved as an image file at output_path. + """ + logs.log_processing(os.path.basename(__file__)) + logs.log_parameter("title", str(title)) + checks.check_path(input_path) + checks.check_path(base_path) + checks.check_dir(output_path) + checks.check_empty(title) + + data = utils.read_gdf(input_path) + base = utils.read_gdf(base_path) + + _, ax = plt.subplots() + ax.set_title(title) + ax.set_xlabel("Longitude") + ax.set_ylabel("Latitude") + base.plot(ax=ax, color="white", edgecolor="black") + data.plot(ax=ax, color="blue", edgecolor="blue") + + plt.savefig(output_path) + logs.log_saved(output_path) + logs.log_processed(os.path.basename(__file__)) + + +if __name__ == "__main__": + checks.check_args(5, __doc__) + plot_geo(sys.argv[1], sys.argv[2], sys.argv[3], sys.argv[4]) diff --git a/2025_Research_Software_Engineering_2/workflow/scripts/polygons2area.py b/2025_Research_Software_Engineering_2/workflow/scripts/polygons2area.py new file mode 100644 index 0000000..4ded44c --- /dev/null +++ b/2025_Research_Software_Engineering_2/workflow/scripts/polygons2area.py @@ -0,0 +1,66 @@ +""" +This script calculates the total area of all geometries in a geospatial file. + +It uses the appropriate UTM projection to ensure accurate area calculation. +The result is written to a plain text file in either square kilometers (default) +or square meters, depending on the specified unit. + +Usage: + python polygons2area.py <input_path> <output_path> <unit> + +Arguments: + input_path (str or Path): Path to the input geospatial file (e.g., GeoPackage, Shapefile). + output_path (str or Path): Path to the file where the total area will be saved as a string. + unit (str): Unit for output area: 'km' (square kilometers) or + 'm' (square meters). +""" + +import os +import sys +import utils +import checks +import logs + + +def polygons2area(input_path, output_path, unit): + """ + Computes the total area of polygons in a geospatial file and saves the result. + + The geometry is first projected into the appropriate UTM CRS for accurate area calculation. + The total area is then summed and converted to the specified unit. + + Args: + input_path (str or Path): Path to the input geospatial file. + output_path (str or Path): Path to the output text file. + unit (str): Unit for the area value: 'km' for square kilometers or 'm' for square meters. + + Returns: + None: The total area is written as a string to the specified output_path. + """ + logs.log_processing(os.path.basename(__file__)) + logs.log_parameter("unit", str(unit)) + checks.check_path(input_path) + checks.check_dir(output_path) + checks.check_empty(unit) + checks.check_member(unit, ["m", "km"]) + + data = utils.read_gdf(input_path) + + utm_crs = data.estimate_utm_crs() + projected = data.to_crs(utm_crs) + + area_m2 = projected.area.sum() + + if unit == "km": + area = area_m2 / 1_000_000 + else: + area = area_m2 + area_str = f"{area:.2f}" + + utils.save_file(area_str, output_path) + logs.log_processed(os.path.basename(__file__)) + + +if __name__ == "__main__": + checks.check_args(4, __doc__) + polygons2area(sys.argv[1], sys.argv[2], sys.argv[3]) diff --git a/2025_Research_Software_Engineering_2/workflow/scripts/trim.py b/2025_Research_Software_Engineering_2/workflow/scripts/trim.py new file mode 100644 index 0000000..1f88016 --- /dev/null +++ b/2025_Research_Software_Engineering_2/workflow/scripts/trim.py @@ -0,0 +1,58 @@ +""" +This script trims rows from the beginning and end of a CSV file and saves the result. + +It reads a CSV file into a pandas DataFrame, removes a specified number of rows from +the top and bottom, and writes the trimmed DataFrame to a new file. + +Usage: + python trim.py <input_path> <output_path> <beginning> <ending> + +Arguments: + input_path (str or Path): Path to the input CSV file. + output_path (str or Path): Path where the trimmed CSV will be saved. + beginning (int or str): Number of rows to trim from the beginning (must be >= 0). + ending (int or str): Number of rows to trim from the end (must be >= 0). +""" +import os +import sys +import utils +import checks +import logs + + +def trim(input_path, output_path, beginning, ending): + """ + Trim rows from the beginning and end of a DataFrame loaded from a CSV file. + + The function reads the data, trims the specified number of rows from both + the top and bottom, and saves the result to a CSV file. + + Args: + input_path (str): Path to the input CSV file. + output_path (str): Path where the trimmed CSV file will be saved. + beginning (int or str): Number of rows to remove from the start. + ending (int or str): Number of rows to remove from the end. + + Returns: + None: The trimmed data is written to the file specified by `output_path`. + """ + logs.log_processing(os.path.basename(__file__)) + logs.log_parameter("beginning", str(beginning)) + logs.log_parameter("ending", str(ending)) + checks.check_path(input_path) + checks.check_dir(output_path) + checks.check_empty(beginning) + checks.check_empty(ending) + + beginning = int(beginning) + ending = int(ending) + data = utils.read_df(input_path, ",", 0, 0) + data = data.iloc[beginning:len(data)-ending] + + utils.save_df(data, output_path) + logs.log_processed(os.path.basename(__file__)) + + +if __name__ == "__main__": + checks.check_args(5, __doc__) + trim(sys.argv[1], sys.argv[2], sys.argv[3], sys.argv[4]) diff --git a/2025_Research_Software_Engineering_2/workflow/scripts/utils.py b/2025_Research_Software_Engineering_2/workflow/scripts/utils.py new file mode 100644 index 0000000..3ec2460 --- /dev/null +++ b/2025_Research_Software_Engineering_2/workflow/scripts/utils.py @@ -0,0 +1,216 @@ +""" +Utility functions for solalytics. +""" +import requests +import pandas as pd +import geopandas as gpd +from bs4 import BeautifulSoup +import checks +import logs + + +def is_number(s): + """ + Checks if given string is a number. + + Arguemtns: + s (str): String to be checked. + + Returns: + Bool: if string is number or not. + + """ + try: + float(s) + return True + except ValueError: + return False + + +def parse_number(content): + """ + Parses number from file content. + + Arguments: + content (str): file content to be parsed. + + Returns: + float/int: parsed number. + """ + content = content.strip() + if is_number(content): + return float(content) if '.' in content else int(content) + raise ValueError("The file does not contain a valid number.") + + +def request_response(url): + """ + Request a reponse from a URL. + + Arguments: + url (str): URL to be requested. + + Returns: + response (str): response from the URL. + """ + checks.check_empty(url) + response = requests.get(url, timeout=2.5) + checks.check_empty(response) + return response + + +def parse_html(response): + """ + Parses HTML from a web response. + + Arguments: + response (str): Response to be parsed. + + Returns: + html: parsed HTML. + """ + html = BeautifulSoup(response.text, 'html.parser') + checks.check_empty(html) + return html + + +def read_file(path): + """ + Read a file and return its contents. + + Args: + path (str): Path to the input file. + + Returns: + str: The loaded content. + + Raises: + FileNotFoundError: If the file does not exist. + OSError: If the file cannot be opened or read. + """ + checks.check_path(path) + try: + with open(path, 'r', encoding="utf-8") as file: + content = file.read().strip() + checks.check_empty(content) + logs.log_read(path) + return content + except OSError: + logs.log_read_error(path) + raise + + +def save_file(file, path): + """ + Saves fiven file as file to the specified path. + + Args: + file: content of the file + path: The target file path where the file will be written. + """ + checks.check_empty(file) + checks.check_dir(path) + try: + with open(path, 'w', encoding="utf-8") as f: + f.write(file) + logs.log_saved(path) + except OSError: + logs.log_saved_error(path) + raise + + +def read_df(path, seperator, header_line, icol): + """ + Read a csv file and return a DataFrame. + + Args: + path (str): Path to the input file. + seperator (str): csv seperator + + Returns: + dataframe: The loaded content. + + Raises: + FileNotFoundError: If the file does not exist. + ValueError: If dataframe is empty + OSError: If the file cannot be opened or read. + """ + checks.check_path(path) + try: + data = pd.read_csv(path, sep=seperator, + header=header_line, index_col=icol) + checks.check_df(data) + logs.log_read(path) + return data + except OSError: + logs.log_read_error(path) + raise + + +def save_df(df, path, index_input=True): + """ + Saves the given DataFrame as a CSV file to the specified path. + + Args: + df : The DataFrame to save. + path : The target file path where the CSV will be written. + + Raises: + FileNotFoundError: If the target directory does not exist. + Exception: If saving the file fails. + """ + checks.check_df(df) + checks.check_dir(path) + try: + df.to_csv(path, index=index_input) + logs.log_saved(path) + except OSError: + logs.log_saved_error(path) + + +def read_gdf(path): + """ + Read a geopackage and return a GeoDataFrame. + + Args: + path (str): Path to the input file. + + Returns: + geodataframe: The loaded content. + + Raises: + FileNotFoundError: If the file does not exist. + ValueError: If dataframe is empty + OSError: If the file cannot be opened or read. + """ + checks.check_path(path) + + try: + data = gpd.read_file(path) + checks.check_gdf(data) + logs.log_read(path) + return data + except OSError: + logs.log_read_error(path) + raise + + +def save_gdf(gdf, path): + """ + Saves the given GeoDataFrame as a GeoPackage to the specified path. + + Arguments: + gdf: The GeoDataFrame to save. + path: The target file path where the .gpkg will be written. + + Raises: + FileNotFoundError: If the target directory does not exist. + Exception: If saving the file fails. + """ + checks.check_gdf(gdf) + checks.check_dir(path) + try: + gdf.to_file(path, driver='gpkg') + logs.log_saved(path) + except OSError: + logs.log_saved_error(path) diff --git a/2025_Research_Software_Engineering_2/workflow/scripts/wgetdir.py b/2025_Research_Software_Engineering_2/workflow/scripts/wgetdir.py new file mode 100644 index 0000000..6e128b3 --- /dev/null +++ b/2025_Research_Software_Engineering_2/workflow/scripts/wgetdir.py @@ -0,0 +1,96 @@ +""" +This script downloads all files from a given online directory URL and saves them +to a specified local directory. + +It parses the provided URL for downloadable files (ignores subdirectories) and writes +the content of each file into the output directory. + +Usage: + python wgetdir.py <directory_url> <directory_path> + +Arguments: + directory_url (str or Path): URL to an online directory. + directory_path (str or Path): Path to a local directory where files will be saved. +""" + +import sys +import os +from urllib.parse import urljoin +import utils +import checks +import logs + + +def parse_urls(html): + ''' + Fetches all valid URLs from anchor tags in an HTML document. + + Arguments: + html (BeautifulSoup): The parsed HTML using BeautifulSoup. + + Returns: + List[str]: A list of URLs (hrefs) found in the HTML. + ''' + urls = [] + for anchor in html.find_all('a', href=True): + href = anchor['href'] + if href in ('../', '/'): + continue + if href.endswith('/'): + continue + urls.append(href) + + return urls + + +def wget(url, dir_path): + """ + Download a file form a URL and saves it to a local directory. + + Arguments: + url (str): The URL of the online file. + dir_path (str): The local directory path where the file will be saved. + + Returns: + None: The downloaded content is written to a file in `dir_path`. + """ + checks.check_empty(url) + checks.check_dir(dir_path) + name = url.split('/')[-1] + path = os.path.join(dir_path, name) + content = utils.request_response(url) + utils.save_file(content.text, path) + + +def wgetdir(directory_url, directory_path): + """ + Downloads all files from an online directory URL and saves them into a local directory. + + Arguments: + directory_url (str): The URL of the online directory containing files. + directory_path (str): The local directory path where files will be saved. + + Returns: + None: All downloadable files in the directory are saved to `directory_path`. + """ + logs.log_processing(os.path.basename(__file__)) + logs.log_parameter("directory_url", str(directory_url)) + checks.check_empty(directory_url) + checks.check_dir(directory_path) + os.makedirs(directory_path, exist_ok=True) + + response = utils.request_response(directory_url) + html = utils.parse_html(response) + + urls = parse_urls(html) + + for url in urls: + url = urljoin(directory_url, url) + wget(url, directory_path) + + logs.log_processed(os.path.basename(__file__)) + + +if __name__ == "__main__": + checks.check_args(3, __doc__) + wgetdir(sys.argv[1], sys.argv[2]) diff --git a/2025_Research_Software_Engineering_2/workflow/snakefile b/2025_Research_Software_Engineering_2/workflow/snakefile new file mode 100644 index 0000000..7096052 --- /dev/null +++ b/2025_Research_Software_Engineering_2/workflow/snakefile @@ -0,0 +1,63 @@ +import os +import platform +from pathlib import Path + +configfile: "config/config.yml" + +RESULTS = config["result_path"] +SUNSHINE_DATA = "sunshine_duration" +SUNSHINE_FILES = glob_wildcards(f"{RESULTS}/{SUNSHINE_DATA}/{{file}}.txt").file +REPORT = config["report_path"] +DATA = config["data_path"] +YEAR = config["year"] +EFFICIENCY = config["efficiency"] +os.makedirs(RESULTS, exist_ok=True) +os.makedirs(f"{RESULTS}/{SUNSHINE_DATA}/", exist_ok=True) +os.makedirs(REPORT, exist_ok=True) +os.makedirs(DATA, exist_ok=True) +SRC = config["scripts_path"] + +# Detect the platform and set the Python executable +PYTHON = "python3" if platform.system() != "Windows" else "python" + + +# include all Rules +include: Path("rules/solarparc_data_processing.smk") +include: Path("rules/photovoltaic_data_processing.smk") +include: Path("rules/sunshine_duration_data_processing.smk") +include: Path("rules/analysis.smk") + + +# Defines a complete workflow run +rule all: + input: + f"{RESULTS}/sunshine_duration.csv", + f"{RESULTS}/sunshine_duration_yearly.csv", + f"{RESULTS}/sunshine_duration_yearly_trimmed.csv", + f"{REPORT}/sunshine_duration_yearly_trimmed.png", + f"{RESULTS}/solarparcs_area.txt", + f"{REPORT}/solarparcs.png", + f"{RESULTS}/solarparcs_energy.csv", + f"{RESULTS}/solarparcs_energy_yearly.csv", + f"{RESULTS}/solarparcs_energy_yearly_trimmed.csv", + f"{REPORT}/solarparcs_energy_yearly_trimmed.png", + f"{RESULTS}/pv_data_cleaned.csv", + f"{RESULTS}/pv_data_cleaned_trimmed.csv", + f"{RESULTS}/pv_data_cleaned_trimmed_collapsed.csv", + f"{REPORT}/pv_data_cleaned_trimmed_collapsed.png", + f"{RESULTS}/energy_difference.csv", + f"{REPORT}/pv_monthly_change_{YEAR}.png", + f"{REPORT}/energy_difference.png" + + +# Removes all output files +rule clean: + run: + if platform.system() == "Windows": + os.system(f'del /Q "{RESULTS}\\{SUNSHINE_DATA}"') + os.system(f'del /Q "{RESULTS}"') + os.system(f'del /Q "{REPORT}"') + else: + os.system(f'rm -rf {RESULTS}/{SUNSHINE_DATA}') + os.system(f'rm -rf {RESULTS}') + os.system(f'rm -rf {REPORT}')