Aria

Apache Derby – tutorial

Apache Derby: funkcja COUNT

Opis

Funkcja agregująca (kolumnowa). Oblicza liczbę rzędów. Działa
na wszystkich typach danych.

Składnia

COUNT ( [ DISTINCT | ALL] ) Expression)

Objaśnienia

‘DISTINCT’ – eliminuje z obliczeń wyniki, które występują
więcej niż raz. W ‘Expression’ ‘DISTINCT’ może być użyte tylko raz.

‘ALL’ jest wartością domyślną i oznacza, że obliczenie musi być
wykonane na wszystkich rzędach.

‘[ DISTINCT | ALL ]’ jest opcjonalne. Jeśli nie zostanie podane
ani ‘DISTINCT’ ani ‘ALL’, zostanie użyta domyślna opcja ‘ALL’

‘Expression’ jest wyrażeniem wybierającym. Może zawierać
referencje do wielu kolumn, ale nie może zawierać więcej niż jednej
funkcji agregującej, ani podzapytań. jeśli wartość ‘Expresion’ jest
null – wartość ta jest pomijana.

Wynik jest typu INTEGER

Przykład 1

SELECT COUNT(val) FROM temperatura

gdzie temperatura to tablica zawierająca trzy kolumny: ‘id
INTEGER’, ‘czujnik INTEGER’, ‘val DOUBLE’

Otrzymujemy liczbę rzędów w kolumnie ‘val’.

Przykład 2

SELECT czujnik, COUNT(val) FROM temperatura GROUP BY
czujnik

Otrzymujemy liczbę rzędów z kolumny ‘val’ dla każdego czujnika
oddzielnie oraz nr tego czujnika.

Przykład 3

Klasa R082_COUNT.java
package aderby.functions.aggr;

import aderby.DerbyUtil;

import java.sql.*;

public class R082_COUNT{
	private static final String baza = "C:/Przyklady/r082_count";
	private static final String skrypt = "aderby/src/resources/sqls/temperatura2.sql";

	public static void main(String[] args) {
		DerbyUtil.startDerbyEngine(DerbyUtil.embdriver);
		Connection con = DerbyUtil.connectEmbeddedDB(baza, ";create=true");
		DerbyUtil.jdbcRunScript(skrypt, con);
		Statement stat = null;
		ResultSet rs = null;
		try{
			stat = con.createStatement();
			rs = stat.executeQuery(
					"SELECT czujnik, COUNT(val) FROM temperatura GROUP BY czujnik");
			while(rs.next()){
				System.out.println(rs.getInt(1) + " " + rs.getDouble(2));
			}
		} catch (SQLException e){
			e.printStackTrace();
		}
		DerbyUtil.close(stat);
		DerbyUtil.close(con);
		DerbyUtil.close(rs);
		DerbyUtil.shutdownEmbeddedDB(baza);
		DerbyUtil.shutdownDerbyEngine();
	}
}
1 5.0
2 7.0
3 5.0

Pliki do ściągnięcia

R082_COUNT.zip (klasa)

temperatura2.zip (skrypt)

Aktualny (tworzony narastająco) plik module-info.java

Aktualny (tworzony narastająco) plik DerbyUtil.java

Pliki tworzone narastająco zastępują poprzednie pliki o tej samej
nazwie i działają dla wszystkich wcześniej opublikowanych przykładów
we wszystkich wpisach w projekcie. W przypadku pliku
module-info.java
może być potrzebne skreślenie niepotrzebnych wpisów.