Aria

Apache Derby – tutorial

Apache Derby: funkcja MIN

Opis

Funkcja agregująca (kolumnowa) działająca na określonej liczbie wybranych rzędów. Działa na wbudowanych typach
danych. Zwraca namniejszą wartość typu numerycznego, ‘string’, boolean lub kalendarzowego.

Składnia

MIN ( [ DISTINCT | ALL] ) Expresion)

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ń. ‘Expression’ musi dawać wynik typu wbudowanego. Jeśli z jakiejś
przyczyny daje wartość NULL, to ta wartość jest pomijana.

Jeśli agregowana kolumna jest typu XXXX to wynik jest tego samego typu.

Przykład 1

SELECT MIN(val) FROM temperatura

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

Otrzymujemy najmniejszą wartość z kolumny ‘val’.

Przykład 2

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

Otrzymujemy najniższą wartość dla każdego czujnika oddzielnie oraz nr tego czujnika.

Przykład 3

Przykład w klasie R082_MIN:

package aderby.functions.aggr;

import aderby.DerbyUtil;

import java.sql.*;

public class R082_MIN {
    private static final String baza =
     "C:/Przyklady/r082_min";
    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, MIN(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 36.6
2 37.4
3 33.2

Pliki do ściągnięcia

R082_MIN.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.