The last thing that I want to quickly
discuss ,are some functions that usually exist in query
languages like Sequel. Such as ,group bys and
aggregate functions. So let's say that I wanted to
create some transformed version of my data. For
example, what are the total number of enrollments per
district? . I could write something like this. Select
district,. Sum (aadhaar - generated) from aadhaar - data,
group by district. Let's talk about this
a little bit more. What's happening exactly?
. Sum is what we call an aggregate function. An aggregate function takes some
set of values, usually numbers and performs
a mathematical operation on them. We've used
sum ,but other aggregate functions include count.
Min, mean, max. You get the idea.
Operations that one could perform on a collection
of numbers. But wait. Every single row is
only one number. So how do we get
to collections of numbers? What we basically say here
is take each distinct district. And then for
all of the different values of aadhaar_generated corresponding
to a row ,for that district. Sum them
up. So, we start with our aadhaar data table.
Take each district ,and sum up the count aadhaar
generated. Now in order for our results to make
sense, we are only going to want one row
in our output for each district. So we throw in
this group by clause on the end, which essentially
says. Let's only have one row per district in
our results. There can be numerous clauses in a
group buy. So we could also say this, select district,
subdistrict, sum aadhaar generated, from aadhaar data, group
by district, subdistrict. Note that whatever columns we
select, that we don't aggregate, we need to
group by. In this case, district and sub-district. We
could also put a where clause here, so
in order to sum up aadhaar generated for people
over 60 in each district, I can just add a where clause in after the table name,
as we discussed earlier. If we were to run this query. Giving us select
district, sub-district, sum aadhaar generated, from aadhaar data,
where age greater than 60, group by district, sub-district. If we
were to run this query, we would have
a row for every combination of district and
subdistrict. And we would also have for each
row, account of how many aadhaar were generated ,for
people over the age of 60.
آخر أمر أريد مناقشته بسرعة
هو بعض الدالات التي توجد عادةً في لغات الاستعلام
مثل لغة الاستعلام الهيكلية (SQL). مثل دالات التجميعات حسب
ودالات التجميع. لذلك، دعنا نفترض أنني أردت
،إنشاء بعض الإصدارات المحولة لبياناتي. على سبيل المثال
ما هو إجمالي عدد التسجيلات لكل
منطقة؟ . يمكنني كتابة شيء مثل هذا. حدد
،منطقة، مجموع (ما نتج عن aadhaar) من بيانات aadhaar
جمّع حسب المنطقة. دعنا نتحدث عن هذا
أكثر قليلاً. ما الذي يجري بالضبط؟
المجموع هو ما نسميه بدالة التجميع. تأخذ دالة التجميع بعض مجموعات القيم .
التي عادةً ما تكون أرقامًا وتجري
،عملية حسابية عليها. استخدمنا المجموع
.ولكن تتضمن دالات التجميع الأخرى العدّ
.الحد الأدنى والمتوسط والأقصى. لا بد أنكم فهمتم
العمليات التي يمكن أن يجريها المرء على مجموعة من
الأرقام. ولكن انتظر. يحتوي كل صف مفرد
على رقم واحد فقط. لذلك، كيف نصل إلى مجموعات
الأرقام؟ ما نقوله هنا في الأساس هو أخذ
كل منطقة بارزة. وبعد ذلك
لجميع القيم المختلفة لـ aadhaar_generated
المقابلة لصف، لهذه المنطقة. ثم نجمِّعهم
.لذلك، نبدأ بجدول بيانات aadhaar .
خذ كل منطقة، وجمّع العدد الناتج عن
،aadhaar. الآن، لكي تصبح نتائجنا ذات معنى
فنحن لا نريد إلا صفًا واحدًا في
مخرجاتنا لكل منطقة. لذلك، نضيف عبارة تجميع حسب هذه على الطرف
التي تقول
في الأساس. دعنا لا نأخذ إلا صفًا واحدًا لكل منطقة
في نتائجنا. يمكن إيجاد عدة عبارات في
،عبارة تجميع حسب. لذلك، يمكننا أيضًا قول هذا، حدد منطقة، منطقة فرعية
،مجموع نتج عن aadhaar، من بيانات aadhaar، جمّع حسب المنطقة
المنطقة الفرعية. لاحظ أنه مهما كان عدد الأعمدة التي نحددها
،والتي لا نجمّعها
نحتاج إلى عبارة تجميع حسب. في هذه الحالة، منطقة ومنطقة فرعية. يمكننا أيضًا وضع
عبارة where هنا، لذلك
لكي يتم جمع ما نتج عن aadhaar للأشخاص الذين تزيد أعمارهم عن
60 سنة في كل منطقة، لا يمكنني إلا إضافة عبارة where بعد اسم الجدول
كما ناقشنا من قبل. إذا كان يجب علينا تشغيل هذا الاستعلام. فلنحدد
،منطقة، منطقة فرعية، مجموع ما نتج عن aadhaar، من بيانات aadhaar
،حيث يزيد السن عن 60 سنة، جمّع حسب منطقة، منطقة فرعية. إذا كان يجب علينا تشغيل هذا الاستعلام
فسيكون لدينا
صف لكل مجموعة مؤلفة من المنطقة
والمنطقة الفرعية. كما سيكون لدينا لكل صف
حساب عدد ما نتج عن aadhaar ،
.للأشخاص الذين تزيد أعمارهم عن 60 سنة
最後は
SQLなどの言語で
よく使われる関数についてです
GROUP BY句や集計関数があります
例えば 先ほどのデータを少し変えて
地域ごとの申請数が知りたいとします
このように書きます
SELECT district, SUM (aadhaar_generated) FROM aadhaar_data
GROUP BY district
どういうことか 詳しく説明しましょう
SUMは集計関数で引数はいくつかの値です
通常 数値であり
それらに対して計算処理をします
SUM以外の集計関数には
COUNT、MIN、MEAN、MAXなどがあります
数値の集合に対して使います
しかしテーブルの各行に
数値は1つです
数の集合を得る方法を説明します
まず 地域を指定し
その地域の行の
aadhaar_generatedの数を集計させます
Aadhaarデータテーブルにある地域ごとに
aadhaar_generatedが合計されます
出力結果では
1つの地域を1行にします
そこで使うのがGROUP BY句です
地域ごとに1行を出力させます
GROUP BY句は複数の指定もできます
例えばこう書けます SELECT district,
subdistrict, SUM (aadhaar_generated) FROM aadhaar_data
GROUP BY district, subdistrict
SELECT文中で集計しない列は 必ずGROUP BY句でも指定します
ここではdistrictとsubdistrictです
WHERE句も使えます
各地域ごとに61歳以上の人の
aadhaar_generatedを集計するなら
テーブル名に続けてWHERE句を入れます
SELECT district, subdistrict, SUM (aadhaar_generated) FROM aadhaar_data
WHERE age > 60 GROUP BY district, subdistrict
これで地域と町の組ごとに
1行が出力されます
各行に61歳以上の
aadhaar_generatedの合計が出力されます
A última coisa sobre a qual quero
falar rapidamente são as mesmas funções que existem em
linguagens de consulta como SQL. Como group bys e
funções de agregação. Então, vamos dizer que quisesse
criar uma versão transformada dos meus dados. Por
exemplo, qual é o número total de matrículas por
distrito? . Eu poderia escrever algo como isto. SELECT
district,. SUM (aadhaar_generated) FROM aadhaar_data,
GROUP BY district. Vamos falar sobre isto
um pouco mais. O que está acontecendo exatamente?
. SUM é o que chamamos de função de agregação. Uma função de agregação pega um
conjunto de valores, normalmente números, e executa
uma operação matemática com eles. Usamos
SUM, mas outras funções de agregação incluem COUNT,
MIN, MEAN, MAX, você pegou a ideia.
Operações que uma pessoa pode executar com um conjunto
de números. Mas, espere. Cada linha é
apenas um número. Então, como chegamos
aos conjuntos de números? O que basicamente dizemos aqui
é pegar distrito distinto. Depois, para
todos os valores diferentes de aadhaar_generated correspondentes
a cada linha para esse distrito, a soma é
calculada. Vamos começar com nossa tabela de dados Aadhaar.
Pegue cada distrito e somente a contagem de
aadhaar_generated. Agora, para nossos resultados fazerem
sentido, queremos apenas uma linha
em nosso resultado para cada distrito. Então, jogamos
esta cláusula GROUP BY no final, que essencialmente
diz: vamos ter apenas uma linha por distrito em
nossos resultados. Pode haver várias cláusulas em um
GROUP BY. Podemos usar também SELECT district,
subdistrict, SUM aadhaar_generated, FROM aadhaar data, GROUP
BY district, subdistrict. Note que para quaisquer colunas que
selecionarmos, que não agregarmos, precisamos
agrupar por, neste caso, distrito e subdistrito. Também
poderíamos colocar uma cláusula WHERE aqui. Então,
para somar aadhaar_generated para pessoas
acima de 60 em cada distrito, posso apenas adicionar a cláusula WHERE após o nome da tabela,
como falamos anteriormente. Se fôssemos executar esta consulta, dado SELECT
district, subdistrict, SUM aadhaar generated, FROM aadhaar_data,
WHERE age > 60, GROUP BY district, subdistrict, se
fôssemos executar esta consulta, teríamos
uma linha para cada combinação de distrito e
subdistrito. E também teríamos para cada
linha, a contagem de quantos Aadhaar foram gerados para
pessoas acima de 60.